2009-12-04 4 views
0

사용자가 쿼리를 정의하고 TADOQuery 구성 요소를 사용하여 실행하고 XML 문서로 PC에 보고서를 저장할 수있는 응용 프로그램을 작성했습니다 (SaveAsFile이 Format 매개 변수로 pfXML로 전달됨).)을 사용하여 오프라인으로 볼 수 있습니다. 이것은 잘 작동합니다.ClientDataSet을 사용하여 Delphi ADOQuery 결과 연결

지금 수행해야 할 작업은 결과를 연결하는 것입니다. 이것이 의미하는 바는 하나 이상의 보고서를 작성하기 위해 두 개 이상의 보고서 (동일한 쿼리를 사용하는 동일한 필드 사용)를 함께 사용해야한다는 것입니다. 예 : 사용자 목록을 검색하는 쿼리가 있습니다. 이 쿼리는 "시스템 A"와 "시스템 B"에서 실행됩니다. 여기서 시스템 A와 시스템 B는 두 개의 개별 시스템입니다. 두 시스템에서 쿼리를 실행하면 TADOQuery 구성 요소로 다시로드 한 다음 화면에서 볼 수있는 두 개의 개별 보고서 파일이 있습니다. 내가해야 할 일은 보고서를 함께 결합하는 것이므로 두 보고서를 전환하지 않고 동시에 모든 결과를 볼 수 있습니다.

TClientDataSet을 사용하여이 작업을 수행 할 수 있다고 들었지만 비교적 데이터베이스 프로그래밍에 익숙하지 않으며이 작업을 어디서부터 시작해야할지 모릅니다. 나는 http://delphi.about.com/od/usedbvcl/a/tclientdataset.htm에 기사를 체크 아웃했다. 그러나 내가 할 필요가있는 것을 정확하게하는 것처럼 보이지 않기 때문에 나는 여전히 어둠 속에있다.

따라서 나는 두 가지 질문을 가지고 있습니다 : 1. TClientDataSet을 사용하여 두 개의 결과 집합을 가져 와서 연결하는 가장 좋은 방법은 무엇입니까? 이 작업을 수행하는 더 좋은 방법이 있다면 무엇입니까? 2. TClientDataSet을 사용하는 것이 가장 좋은 방법이라면 어떻게해야할까요? TADOQuery에서 TClientDataSet으로 데이터를 전송 한 다음 다시 돌아 오는 방법은 무엇입니까? 처리의 기본 흐름이 같은 갈 필요 : -

        ClientDataSet -> TADOQuery -> SaveToFile 

보고서 2 (LoadFromFile) \> TADOQuery -

보고서 1 (LoadFromFile을)>는 TADOQuery/

모든 도움이 될 것입니다 감사합니다. 나는 정말로 어디에서 시작해야할지 모른다!

답변

0

나는 이것에 대해 조사를 마쳤습니다. 내 응용 프로그램에서는 사용자가 데이터베이스를 쿼리하여 보고서를 생성 할 수 있습니다. 이 작업을 수행 할 수 있고 작은 결과 집합에 대해서는 매우 효율적입니다. 그러나 이것이보고 응용 프로그램이기 때문에 수십만 개의 레코드를 반환 할 가능성이 있습니다. ClientDataSet을 사용하면 엄청난 성능 문제가 발생할 수 있습니다. 약 50,000 건 이상의 레코드 (합리적, 고객 기반)를 얻게되면 기하 급수적으로 처리가 증가하기 시작합니다. 따라서 이제는 기본적으로 문제가됩니다.

관련 문제