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

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

Работа с потоками [D6, XP]


webpauk ©   (2007-04-24 11:20:00) 

type
 TDoc = class(TObject)
 private
   fID: Integer;
   fOwner: TObject;
   fCount: Integer;
   fArr: array of TObject;
   fIDDocType: Integer;

   procedure Activate;
 protected
   constructor Create(Owner: TObject; IDValue: Integer);
 end;

procedure TDoc.Activate;
var
 I: Integer;
 Log: Boolean;
begin
 Query.SQL.Text:='Select ...';
 Query.Active:=True;

 fIDDocType:=Query.FieldByName('IDDocType').AsInteger;

 Query.SQL.Text:='Select ...';
 Query.Active:=True;

 while not Eof do
 begin
   SetLength(fArr, fCount+1);
   fArr[fCount]:=TDoc.Create(Self, Query.FieldByName('ID').AsInteger);
   Inc(fCount);

   Next;
 end;

 for I := Low(fArr) to High(fArr) do
 begin
   TDoc(fArr[I]).Activate;
 end;
end;


в процедуре Activate, как видно производится "Query.select" - и очень много. Занимает много времени.
Может через потоки это будет быстрее?
Если не в лом, подскажите как.


Сергей М.   (2007-04-24 11:51:00) [1]


> Занимает много времени


В первую очередь следует обратить внимание на оптимальность самого запроса и на оптимальность структуры данных в БД, к которым в запросе происходит обращение. И только послеэтого обращать взор к потокам.


clickmaker   (2007-04-24 11:34:00) [2]


> Может через потоки это будет быстрее?

быстрее не будет, но можно открыть 1 документ, и пока юзер балдеет от увиденного, под ковром докачивать остальные (в потоке)


Сергей М.   (2007-04-24 11:28:00) [3]


> Может через потоки это будет быстрее?


Нет, не будет.
Даже не обольщайся.


Наверх

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