Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
ВнизРабота с потоками Найти похожие ветки
← →
webpauk (2007-04-24 11:20) [0]
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:28) [1]
> Может через потоки это будет быстрее?
Нет, не будет.
Даже не обольщайся.
← →
clickmaker © (2007-04-24 11:34) [2]
> Может через потоки это будет быстрее?
быстрее не будет, но можно открыть 1 документ, и пока юзер балдеет от увиденного, под ковром докачивать остальные (в потоке)
← →
Сергей М. © (2007-04-24 11:51) [3]
> Занимает много времени
В первую очередь следует обратить внимание на оптимальность самого запроса и на оптимальность структуры данных в БД, к которым в запросе происходит обращение. И только после этого обращать взор к потокам.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.037 c