SELECT結果を分割して取得するには

解決


Delphi2年生  2008-04-07 19:57:31  No: 30447  IP: 192.*.*.*

いつも拝見して、
勉強させていただいております。

たびたび申し訳ありません。
現在、TDBGridとTClientDataSetを使用して
データベースアプリケーションを作成しているのですが、

TDBGridに表示するSELECT文の実行結果が、
10万レコード程ある場合に、SQLの実行に時間がかかってしまうため、
何らかの方法でパフォーマンスを向上したいと思っているのですが、
TDBGridか、TClientDataSetのプロパティなどで、
一度にフェッチするレコード数などを指定して、
パフォーマンスを向上させることはできますでしょうか?

無理な場合は、SQLのWhere条件などで取得する行数を制限しようと
思うのですが、その場合は、グリッドをスクロールしたタイミングで
残りの行を再取得し表示したいと思うのですが、
この場合は、前回のSELECT結果に今回のSELECT結果を
追加するようなことはできますでしょうか?

もし何かよい解決方法などありましたらご教授いただけますと幸いです。
初歩的な質問で申し訳ありませんがよろしくお願いいたします。

編集 削除
Ru  2008-04-08 12:05:04  No: 30448  IP: 192.*.*.*

>一度にフェッチするレコード数などを指定して、
>パフォーマンスを向上させることはできますでしょうか?
  TClientDataSet.PacketRecordプロパティ参照してくださいな。

編集 削除
2008/04/07(月) 19:57:  2008-04-08 18:33:59  No: 30449  IP: 192.*.*.*

Ruさん。
いつもありがとうございます。

ご指摘の通り、TClientDataSet.PacketRecordプロパティで
一度に取得するレコード数を制限させることができました。
(PacketRecordという名前だったのですね…
まったく気づきませんでした。すみませんでした。)
誠にありがとうございました。

編集 削除