大きなデータセットを高速に処理できるDBGridコンポーネントはありますか?

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

質問

大規模なデータセット、数百万のレコードには、DBGridの速度を維持するための特別なプログラミングが必要です。

これを自動的に行うDelphi用の既製のコンポーネント(DBGrid)があるかどうか知りたいですか?

EDIT例:一部のデータベースには、1番目のXレコード(100レコードなど)を取得する機能があります。スクロールして最下部に到達したら、次の100を自動取得します。逆に、最初に到達したら、前の100を取得します。これをプログラムできることはわかっていますが、その機能をDBGridがバッファリングを行うDBGridコントロール。それはかなりのプログラミングを節約します-あなたは単に「バッファサイズ」を設定する必要があります;いわば。

役に立ちましたか?

解決

Developer Express QuantumGrid Suite をご覧ください。 (@birger:あなたはちょうどティックが速かった;-))だから私は答えを複製するだけでなく、いくつかの詳細を述べています:

DevExpressグリッドは、グリッドにバインドされたデータを制御するためのいくつかのモードを持つデータコントローラーを使用します。これらの1つはまさにあなたが探しているものです:

  

グリッドモード

     

グリッドモードを使用する場合、固定モードのみ   データセットレコードの数がロードされます   メモリに。限られているため   レコードのセットはから取得されます   データセット、自動ソート、フィルタリング   集計計算は無効です   グリッドモード(制御する必要があります   代わりに手動で)。デフォルトでは、これ   モードが無効になり、   ExpressDataControllerはすべてをロードします   データセットのレコード。

いくつかの欠点がありますが、それはかなり明白です。すべてのレコードが手元にない場合、要約、ソート、またはフィルターを作成できません。

他のヒント

すばらしい(無料のオープンソース、MPL 1.1およびGPLとしてデュアルライセンスされているため、クローズドソースアプリで使用可能)仮想ツリービューとそのユーザー指定の子孫(ページをスクロールしてそれらを見つけます。)

質問の編集を反映する編集:Virtual TreeViewでは、数百万のノードをメモリに保持せずに処理できるだけでなく、実際にはそれを使用するのが望ましい方法です。必要なときにイベントコールバックを介してデータを提供し、そのデータをキャッシュする(またはしない)ようにツリーに指示できます。

ああ、もちろん、テーブルとして機能するグリッド/レポートモードもあります(GridExtensionsプロパティをTrueに設定するだけです)。

NextGridは、Delphi用の軽量で高速で見栄えの良いグリッドです

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

  

大量のセルを速度を失うことなく処理する

     

NextGridは非常に大量を処理できます   速度を失うことなく細胞の。速度   データの追加、変更、削除   細胞の量に依存しません。   NextGridデモでは、どのくらいの速さを確認できます   NextGridは100,000行と10行で動作します   列= 1,000,000セル

DevExpress Quantumgrid はこれを非常に優れた方法でサポートしています。

申し訳ありませんが、Neftalへのコメントを見ましたí

一度に100レコードを取得し、次の100件を取得する場合、この作業はデータベースアクセスコンポーネントに関連し、 devart コンポーネントを見ると、最も使用されているデータベースへの直接アクセスコンポーネントを提供します、あなたが尋ねている機能などがあります:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top