대규모 데이터 세트를 빠르게 처리할 수 있는 DBGrid 구성 요소가 있습니까?

StackOverflow https://stackoverflow.com/questions/200794

문제

대규모 데이터 세트, 수백만 개의 레코드에는 DBGrids의 속도를 유지하기 위해 특별한 프로그래밍이 필요합니다.

이 작업을 자동으로 수행하는 Delphi(DBGrids)용 기성 구성 요소가 있는지 알고 싶습니다.

예를 들어 편집:일부 데이터베이스에는 첫 번째 X 레코드 가져오기(예: 100개 레코드)와 같은 기능이 있습니다.스크롤하여 맨 아래에 도달하면 다음 100을 자동으로 가져오고 싶습니다.반대로 시작 부분에 도달하면 이전 100개를 가져오고 싶습니다.나는 이것을 프로그래밍할 수 있다는 것을 알고 있지만 DBGrid가 버퍼링을 수행하는 DBGrid 컨트롤에 해당 기능을 전파하는 것이 가능합니다.이것은 상당한 프로그래밍 비용을 절약해 줄 것입니다. 말하자면 "버퍼 크기"만 설정하면 됩니다.

도움이 되었습니까?

해결책

나는 볼 것이다 개발자 Express Quantumgrid Suite. (@birger : 당신은 단지 진드기가 더 빨랐습니다 ;-)) 그래서 나는 단지 답을 복제하는 것이 아니라 정교화를 중복시키는 것이 아닙니다.

DeVexpress 그리드는 그리드에 바인딩 된 데이터를 제어하기 위해 여러 모드가있는 데이터 컨트롤러를 사용합니다. 이 중 하나는 정확히 당신이 찾고있는 것입니다.

그리드 모드

그리드 모드를 사용하는 경우 고정 된 수의 데이터 세트 레코드 만 메모리에로드됩니다. 데이터 세트에서 제한된 레코드 세트 만 검색되므로 자동 정렬, 필터링 및 요약 계산은 그리드 모드에서 비활성화됩니다 (대신 수동으로 제어해야 함). 기본적 으로이 모드는 비활성화되고 ExpressDataconTroller는 데이터 세트에 모든 레코드를로드합니다.

그것은 약간의 단점이 있습니다. 꽤 분명해 보입니다. 모든 레코드가 없으면 요약, 정렬 또는 필터를 만들 수는 없습니다.

다른 팁

당신은 멋진 (무료, 오픈 소스, MPL 1.1 및 GPL로 라이센스가 부여 된 듀얼 라이센스가 있으므로 폐쇄 소스 앱에서 사용할 수 있음)를 살펴볼 수 있습니다. 가상 트리 뷰 그리고 사용자가 제공 한 후손 (페이지를 아래로 스크롤하여 그 자체를 찾으십시오.)

질문의 편집을 반영하기 위해 편집 : Virtual TreeView를 사용하면 메모리를 유지하지 않고 수백만 개의 노드를 처리 할 수있을뿐만 아니라 실제로 사용하는 선호하는 방법입니다. 필요할 때 이벤트 콜백을 통해 데이터를 제공하고 트리에 해당 데이터를 캐시하도록 (또는 그렇지 않은지) 알릴 수 있습니다.)

아, 물론 그것은 테이블 역할을 할 수있는 그리드 / 보고서 모드도 있습니다 (gridextensions 속성을 true로 설정하십시오.)

NextGrid는 가볍고 빠르며 멋진 Delphi용 그리드입니다.

http://www.bergsoft.net/comComponent/next-grid/features.htm

속도 저하 없이 대량의 세포 처리

NextGrid는 속도를 잃지 않고 매우 많은 양의 셀을 처리 할 수 ​​있습니다.데이터를 추가, 수정 및 삭제하는 속도는 셀의 양에 의존하지 않습니다.NextGrid 데모에서는 100,000 행과 10 개의 열 = 1,000,000 셀에서 NextGrid가 얼마나 빠른지 알 수 있습니다.

제 생각에는 Devexpress Quantumgrid 이것을 아주 잘 지원합니다.

죄송합니다. 방금 Neftalí에 대한 귀하의 의견을 보았습니다

시간당 100 레코드를 가져오고 다음 100을 가져 오려면 데이터베이스 액세스 구성 요소와 관련된이 작업을보십시오. Devart 구성 요소는 대부분의 사용 된 데이터베이스에 직접 액세스 구성 요소를 제공하며, 귀하가 묻는 기능이 있습니다.

http://www.devart.com/products-vcl.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top