2010-02-14 1 views

답변

2

데이터 세트가 SQL 기반의 스토리지 엔진에서 오는 경우 선택을 사용 결과 세트에서 마스터 테이블의 필드만으로 조인 된 테이블에 대한 distict 쿼리. SQL 엔진이 당신을 위해 일하게하십시오.

+0

데이터는 테이블 중첩의 세 가지 수준을 가진 XML 파일에서 cames. 감사합니다 –

+0

XML 데이터를 직접 구문 분석하는 경우 추가 데이터 필드 ChildNodeCount를 마스터 데이터 집합에 추가하고 구문 분석하는 동안이를 채우고 OnFilterRecord를 사용하여 이것이> 0인지 확인할 수 있습니다. 어느 쪽이든 : 결국에는 하위 레코드 계산에 이릅니다. SQL 엔진, mster 세부 링크, 자신의 파서 등. 마스터 테이블에 카운트하면 세부 데이터 집합에서 레코드 검색을 사용하여 필터링하는 것보다 속도면에서 이점이 있지만 큰 경우에는 문제가됩니다. 데이터 양. –

1

상황에 따라 사용할 수 있습니다

  1. OnFilterRecord 이벤트에서 당신은 할 수 있습니다 :

    수락 : = myDataSetField.NestedDataSet.RecordCount> 0;

  2. SQL 백엔드가있는 경우 필요한 레코드 만 가져 오려면 Exists 또는 Count을 사용할 수 있습니다. 아마도 당신이 네트워크를 통해 있다면 가장 좋은 방법 일 것입니다. 그러나 나는 당신에게 어떤 인프라가 있는지 모른다.

  3. OnFilterRecord 경우, 당신은 할 수 있습니다

    수락 : =이 myDataSetField.IsNull하지; // 데이터 집합 필드가 비어있는 경우 그냥 테스트 - 그것을 을 할 수있는 빠른 방법 중 하나입니다 ...하지만이 데이터의 구조에 의존하는/데이터 세트 등

  4. 때로는 더 나은입니다 중첩 된 데이터 세트에서 이러한 정보를 얻는 것이 비용이 많이 들기 때문에이 상태를 지정하기 위해 DataSet/Table에 전용 필드가 있어야합니다.

  5. 또한 동일한 고려 사항 (위의 4 참조)에 대해이 정보를 얻기 위해 저장 프로 시저 (DB 백엔드가 허용하는 경우)를 가질 수 있습니다.

HTH