Witam,
Jako że ClientDataSet jest głównie używany w Delphi ten dział jest bardziej właściwy do zadania mojego pytania.
Chciałem użyć TClientDataSet ale na samym początku pojawił się problem. Jak tylko dochodzi do wyświetlania w dbgridzie wierszy to sypie Accessem.
- Na formie mam ADOConnection, ADOQuery (prosty select * from table), datasource i grida. Wyświetla ładnie rekordy.
- Dodałem DataSetProvider, ClientDataSet oraz dodatkowego grida i datasource.
- Ustawiam Active w ClientDataSet na true i ładnie powinno pobrać wiersze poprzez providera z ADOQuery i wyświetlić w drugim gridzie. W międzyczasie powinienem nawet zobaczyć że ADOQuery stał się aktywny i w pierwszym gridzie powinny być też widoczne wiersze. I tak się dzieje, pierwszy grid wyświetla wiersze a jak dochodzi do wyświetlenia wierszy w drugim to Access V. i koniec.
Ktoś wie o co chodzi? Zero kodu, podpięte po prostu kontrolki. ClientDataSet ma pobrane wiersze ale nie można ich czytać:
Zdarzenia:
1. ClientDataSet BeforeOpen
2. Query BeforeOpen
3. Query AfterOpen
4. Provider GetData -> RecordCount = 6 czyli sa wiersze pobrane
5. ClientDataSet AfterOpen
Jak przychodzi wyświetlić w dbgridzie Access. Jak odepnę datasource do którego grid jest podpięty to jest ok ale jak wówczas dodałem kod by pobrać cokolwiek to Access:
int count = ClientDataSet->RecordCount; // 6 wierszy
ClientDataSet->First();
AnsiString text = ClientDataSet->FieldByName("name")->AsString; //Access V.
Czy ktoś wie o co chodzi albo ma jakiś przykładowy kod?
PS IDE Borland C++ Builder 6.0 / Delphi