Hallo,
ich habe verschiedene Komponenten ausprobiert, bei ZEOS/
ADO blockiert ein
Query.Open bis die kompletten Daten uebermittelt wurden, bei AnyDAC nicht.
Delphi-Quellcode:
qry.sql.text := '
SELECT * FROM GROSSE_TABELLE';
qry.open;
// <-- erst fertig wenn die Daten uebermittelt wurden bei ZEOS/ADO, schnell bei AnyDAC
while not qry.eof
do begin
// zeitintensive Berechnung
qry.next; <-- vermutlich: schnell bei ZEOS/
ADO, blockierend bei AnyDAC
end;
Kann man das Verhalten von AnyDAC irgendwie bei ZEOS/
ADO einstellen? Ich moechte die Daten schon verarbeiten, auch wenn diese noch nicht komplett uebertragen wurden (qry.next sollte dann blockieren). Da Uebertragung und Berechnung gleich lange dauern, wuerde es somit quasi parallel ausgefuehrt. Da im Moment das Open bei ZEOS/
ADO blockiert dauert alles doppelt so lange...
Ich moechte ungern alles auf Events umstellen (ExecuteOption auf adAsyncExecute) da ich dann selbst den Main/Read-Thread synchonisieren muss.
Edit:
AnyDAC bzw. FireDAC ist mir zu teuer (D2007 Prof Upgrade bei mehreren Nutzern) und diese werden auch nicht mehr supported fuer Delphi2007.
Waere auch mit guenstigen Alternativen zu frieden.