Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что это, проблемы с памятью??? [D2005, XP]


Не умею ничего ©   (2007-01-13 15:41:00) 

объясните мне:

function Fetch(var Data: _XSDATA;
              const Query: String): Integer;
var iSQL: TIbSQL;
   iTrn: TIbTransaction;
   Temp: Array[0..65535] of TIBXSQLDA;
   I: Integer;
begin
 Result := 0;
 try
   if PrepareSQL(iSQL, iTrn, Query) then begin
     iSQL.GoToFirstRecordOnExecute := True;
     iSQL.ExecQuery;
     while not iSQL.Eof do begin
       Temp[Result] := iSQL.Current;
       iSQL.Next;
       Inc(Result);
     end;
   end
 finally
   FinalizeSQL(iSQL, iTrn, False, True);
   SetLength(Data, Result);
   for I := 0 to Result-1 do begin
     showmessage(Temp[I].ByName('USERNAME').AsString);
     Data[I].DATA := Temp[I];
   end;
 end;
 if (Result<>0) then Dec(Result);
 
end;

почему если читать Temp[Result] в while not iSQL.Eof, то всё ок, а если в for I  то все результаты одинаковые???


ors_archangel   (2007-01-13 21:52:00) [1]

Проверь описание TIBXSQLDA. Наверно, после FinalizeSQL всё результаты очищаются.


Наверх

Титульная страница Поиск, карта сайта Написать письмо