Witam, chciałem sprawdzić ClientDataSet ale na samym początku pojawił się problem. Jak tylko dochodzi do wyświetlania w gridzie wierszy to sypie Accessem.

  1. Na formie mam ADOConnection, ADOQuery (prosty select * from table), datasource i grida. Wyświetla ładnie rekordy.
  2. Dodałem DataSetProvider, ClientDataSet oraz dodatkowego grida i datasource.
  3. 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 gridzie Access. Jak odepnę datasource 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