UniDac + TAdvStringGrid - lazy loading

0

Hej,

czy ktoś realizował może lazy loading w połączeniu UniDac i prezentacji danych w TAdvStringGrid od TMS ?
Jak to jest z tą opcją FetchAll = false bo coś mało informacji mogę o niej znaleźć ? Jej użycie w UniQuery jako

FQuery.SpecificOptions.add('FetchAll=false');

nic nie daje.

0

Grid to chyba nie ma znaczenia ?
Moze twoj sterownik/baza itp nie obsługują tego mechanizmu ?
Jakis mechanizm obejrzenia wszystkich SQL jest ?

0

Ten od tms chyba ma bo on z ds pobiera dane do swoich syruktur

0

Wydaje mi się, że Grid nie ma właśnie znaczenia, bo w tym przypadku dane są wpisywane bezpośrednio do grida z wyniku zapytania.
Więc jak już to można się skupić na samym UniQuery. Baza to Ms Access i MySQL. Póki co na Accessie sprawdzałem ale nie wiedzę, żeby ta opcja coś zmieniła.
Zrobię test na pustym projekcie. Bardziej pytanie do Was czy korzystaliście z tej opcji na UniQuery i czy to w ogóle ma sens , czy lepiej np samemu próbować z użyciem Limit Offset (tylko tu znowu Offset w Access komplikuje sprawę)

0

Z tego co jeszcze wyczytałem to może mieć znaczenie to, żeby UniQuery było powiązane z jakimś DS i dopiero z jakimś gridem, i to wtedy tą opcje fetchAll = false jakoś wykorzystuje.. NIe mogę za bardzo znaleźć w dokumentacji jakiejś szerszej informacji na ten temat..

0

Jeśli zbiór danych (TDataSet) nie jest połączony z gridem przez źródło danych (TDataSource) to zapewne grid pobiera wszystkie rekordy za jednym zamachem. Sprawdź jak zachowa się UniQuery ze zwykłym TDBGrid.

0

Sprawdzę to na spokojnie, tak jak pisałem, ten TAdvStringGrid uzupełniany manualnie po prostu to jest element większego komponentu, takiego bardziej rozwiniętego grida.Myślałem, że może ta opcja działa już w UniQuery

0

@michalgw: grid nie pobierał nigdy wszystkich rekordow, a po sposobie wyswietlania suwaka do przewijania gora/dół było widać czy jest zrobiony fetchAll dla TDataset, jak suwak był na srodku to znaczylo ze nie wiadomo ile rekordow jest w Tdataset

1

Owszem, jednak to czy wszystkie rekordy są pobierane po otwarciu zbioru danych lub czy będą pobierane "na bieżąco" w tym przypadku zależy od zbioru danych (np IBX pobiera dane "na bieżąco" a TSQLQuery z pakietu SQLdb pobiera wszystkie rekordy). Połączenie UniQuery z TDBGrid pozwoli na określenie, czy UniQuery pobiera wszystkie rekordy ignorując parametr "FetchAll=false" czy jednak pobiera "na bieżąco".

0

Jak testuje na TDBGrid razem z UniDataSource no to wtedy działa to FetchAll.
No ale jakbym chciał tego użyć bez TDBGrid ? tylko na ręcznie Uzupełnianym StringGridzie?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.