Hallo,
ich habe folgendes Problem mit TADODataSet:
Ich moechte den User waehrend des Ladevorgangs nicht mit einer einfachen Sanduhr sitzenlassen, daher habe ich folgendes versucht:
Ich habe ich bei der ADOConnection ConnectionOptions auf coAsyncConnect gesetzt und am ADODataSet folgende Eigenschaften eingestellt:
CursorLocation:=clUseClient
ExecuteOptions:=[eoAsyncExecute, eoAsyncFetch, eoAsyncFetchNonBlocking]
Da mir weder AfterOpen, noch OnFetchComplete immer korrekt ausgelöst werden, wenn die Abfrage keine Daten enthält, habe ich mit folgender Schleife geprüft, ob die Abfrage ausgeführt wurde:
var
b=boolean;
begin
b:=false;
while not b do
if Assigned(ADODataSet1.Recordset) then
b:=(ADODataSet1.Recordset.State=1);
end;
Leider spielt jedoch das Grid, welches ich an das ADODataset gehaengt habe, verrueckt und zeigt manchmal nur den ersten Datensatz an. Manchmal zeigt es aber auch nur eine (leere) Spalte an, dies aber für alle Datensätze.
Wie kann ich nun mein Statusfenster anzeigen ohne diese Probleme zu haben? Das Ereignis OnFetchProgress hat ja auch seine Fehler (die aber meiner Ansicht nach von ADO kommen, da ein VB-Entwickler die gleichen Probleme mit diesem Ereignis hat).
MfG Jan
ich habe folgendes Problem mit TADODataSet:
Ich moechte den User waehrend des Ladevorgangs nicht mit einer einfachen Sanduhr sitzenlassen, daher habe ich folgendes versucht:
Ich habe ich bei der ADOConnection ConnectionOptions auf coAsyncConnect gesetzt und am ADODataSet folgende Eigenschaften eingestellt:
CursorLocation:=clUseClient
ExecuteOptions:=[eoAsyncExecute, eoAsyncFetch, eoAsyncFetchNonBlocking]
Da mir weder AfterOpen, noch OnFetchComplete immer korrekt ausgelöst werden, wenn die Abfrage keine Daten enthält, habe ich mit folgender Schleife geprüft, ob die Abfrage ausgeführt wurde:
var
b=boolean;
begin
b:=false;
while not b do
if Assigned(ADODataSet1.Recordset) then
b:=(ADODataSet1.Recordset.State=1);
end;
Leider spielt jedoch das Grid, welches ich an das ADODataset gehaengt habe, verrueckt und zeigt manchmal nur den ersten Datensatz an. Manchmal zeigt es aber auch nur eine (leere) Spalte an, dies aber für alle Datensätze.
Wie kann ich nun mein Statusfenster anzeigen ohne diese Probleme zu haben? Das Ereignis OnFetchProgress hat ja auch seine Fehler (die aber meiner Ansicht nach von ADO kommen, da ein VB-Entwickler die gleichen Probleme mit diesem Ereignis hat).
MfG Jan
Comment