QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

SELECT文を実行した結果のレコード件数の取得方法

こんばんは
現在、自宅で試せる環境にありませんので質問させていただきます。
題名にもあるようにSQL分にてセレクトされたレコードの件数を取得するメソッド
はあるのでしょうか?
リファレンスを見てみたところResultSetインターフェースの「getFetchSize」
あたりが使えるのではないかと思い
googleで「getFetchSize レコード数」で検索したところ
「一回あたりにFetchするレコード数」とあったのでこれは違うかなという気がしました。

質問者:しん

回答

javaというよりSQLの話ですかね。

select count(*) from table_name;

投稿者:(株)ぽち

編集 履歴 (0)

SQLの実行結果って、必ずSQLのクライアントに全て返されるわけじゃないので、
レコード件数が取得できる事が保障されていません。
だからJDBCドライバではサポートされていませんね。

MicrosoftのADOでもレコード数を返すプロパティがありますが、
カーソルがサーバ上では取得はできないようになっています。

結局のところEOFになるまでフェッチしないとわからないんですね。
なので、ぽちさんのような方法で事前に件数を取得するのが確実ではないでしょうか。

投稿者:かつのり

編集 履歴 (0)

お返事遅れて申し訳ありません。
そうでしたか。COUNTをとることにします。どうもありがとうございました。

投稿者:しん

編集 履歴 (0)

もう完結しているようですが……

java.sql.ResultSetで取得したデータの数を得たいのですが?

---

私が今担当しているプロジェクトでもCOUNT(*)を発行しています。結局、これが一番簡単、確実っぽいです。
[ メッセージ編集済み 編集者: 永井和彦 編集日時 2005-10-31 02:15 ]

投稿者:永井和彦

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。