2012-09-15 4 views
1

둘 다 TCustomClientDataset의 자손 데이터 세트 두 개가있는 경우 하나의 CloneCursor 콜을 가질 수 있으며 동일한 데이터를 독립적으로 볼 수 있습니다. 설명서를 보면 원본 데이터 집합이 모든 데이터 집합이 될 수 있다는 것을 제외하면 TDatasetProvider을 사용하여 본질적으로 동일한 결과를 얻을 수 있다고합니다.TDatasetProvider를 통해 모든 레코드를 검색하려면 어떻게해야합니까?

나는이 작품을 만들고있다. 데이터베이스의 데이터를 읽는 (그걸 A이라고 부름)과 별도의보기로 작동하는 TClientDataset (이걸 B이라고 부름)이 있으며 B에 연결된 TDBGrid이 있습니다.

B.CloneCursor(A, ...)을 호출하면 모눈에 A의 모든 레코드가 표시됩니다. 그러나 TDatasetProvider을 만들고 Dataset 속성을 A으로 설정 한 다음 B에 대한 공급자로 설정하면 B에 연결된 눈금이 모든 행 대신 하나의 행만 표시합니다.

무엇이 잘못 되었습니까? 그리드가 결국 A을 모두 표시하도록 수정하는 방법은 무엇입니까?

+0

두 번째 방법은 문제가되지 않습니다. 나는'TADODataSet'과'A'를위한'TSimpleDataSet'을 시도했습니다. – NGLN

답변

1

디버거에서 많은 것을 파고 들자 나는 이것을 추적했다. 데이터 집합을 열면 공급자를 통해 데이터가 가져 오지만 먼저 원본 데이터 집합에서 First을 호출하지 않습니다. 프로그램의 다른 부분으로 인해 소스 데이터 세트가 마지막 행에 있었으므로 EOF을 치기 전에 한 행 만 가져 왔습니다. 명시 적으로 First으로 전화를 걸어 사전에 문제를 해결하십시오.

+1

이 버그 또는 기능 호출 여부를 잘 모르겠습니다. 둘 다 내가 말한 것 ... –

관련 문제