Zdravim,
mam nasledujici problem. Potrebuji v DBGridu zobrazit vysledek SQL dotazu - pouzivam ADOQuery. Pokud je ADOQuery "klasicky" synchronni, vse je ok. Ale pokud ADOQuery nastavim tak aby spoustela dotaz asynchronne, v DBGridu se data zobrazi nejak divne - vetsinou se vykresli jen 1 radek, dalsi radky se vykresli az potom co posunu scrollbar DBGridu dolu.
Pricemz dotaz na SQL serveru trva jen cca 2-3s, takze by to nemelo byt zpusobene tim, ze ADOQuery teprve postupne donacita data z DB. Jeste jsem zkousel v obsluze udalosti ADOQuery.OnFetchComplete prekreslit DBGrid, ale nepomohlo ani DBGrid.Repaint ani DBGrid.Refresh.
Pouzivam: Delphi 7 Enterpise, MS SQL 2000, nativni MS OLE DB Provider for SQL Server.
Nastaveni ADOQuery:
CursorLocation := clUseClient
CursorType := ctKeyset
ExecuteOptions := [eoAsyncExecute,eoAsyncFetch,eoAsyncFetchNonBlocking]
CacheSize := 1000 (hodnotu CacheSize jsem zkousel ruzne menit ale nemelo to vliv)
Vsechna nastaveni DGGridu jsou defaultni.
Diky za rady...
Fórum › Delphi
Asynchronní ADOQuery vs. DBGrid
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 4 hosté
Podobná vlákna
Pohyb v DBGrid — založil dyžon
DBGrid vlastní vykreslení Titulní řádky — založil MilanL
DBGrid, InterBase - sortovani ASC,DESC — založil PetrUK
Asynchronni sockety — založil Mara
Asynchronní metody — založil RePRO