■ SQLを使用し、DBGridに件数制限をかけるには?

[Delphi Q & A 掲示板] [過去ログの一覧]


ネコネコ 2009/02/12(木) 15:09:12
照会機能で、SQLコンポーネントを使用しDBGridに該当データを表示させております。そこに、件数制限を持たせたいのですが、
現状、以下の通り、
SELECT フィールド名… FROM ファイル名 〜 FETCH FIRST 件数 ROWS ONLYと記述しております。
上記で問題ないのですが、件数制限に引っかかった場合(件数以上のレコードが存在する)は、アラームメッセージを表示させようと考えております。
そこで、SQLコンポーネント.RecordCountで何件該当したかで判断しようとしたのですが、RecordCountが上手く使用できません。
そこで、SELECT フィールド名、COUNT(*) AS 〜 の様にしようとしたのですが、これも文法エラーで無理でした。よって、上記の表示するSQLとは別に
件数をカウントするSQLを別途作成すれば問題ないのですが、
パフォーマンスを考慮し、これは避けたいのが本音です。
SQL発行を一回で、DBGridに表示かつ件数をカウントする方法はありますでしょうか?

noukoshi802 2009/02/12(木) 20:30:23
データベースの種類が書かれていないので
判らないのですが
Oracleなら RowCount
MS-SQLなら TOP 関数がWhere句で使用出来ます

ネコネコ 2009/02/13(金) 10:17:39
DBの種類は、DB2になります。

HOta 2009/02/13(金) 14:07:53
TDBGridは、データセットの中身を表示するものですので、制限するなら、取り出す場合に制限するのが基本です。
RowCountは無いのが基本的ですが、種類によります。
件数をカウントするのが基本でしょう。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library