- PR -

CallableStatementの実行について

1
投稿者投稿内容
住所不明
会議室デビュー日: 2004/03/24
投稿数: 8
投稿日時: 2004-03-24 20:17
初歩的な質問ですいません。

CallableStatementはStatementとPreparedStatementを継承しているため、
実行時には以下のメソッドを使用できるかと思います。
・ResultSet executeQuery() throws SQLException
・int executeUpdate() throws SQLException
・boolean execute() throws SQLException

しかしながら、ソース例などを調べてみると
CallableStatement st = Conn.prepareCall("{call GetXXX}");
st.execute();
などのが見受けられます。

戻り値であるResultSetはどうなっているのでしょうか?

これは
CallableStatement st = Conn.prepareCall("{call GetXXX}");
ResultSet rs = st.execute();
^^^^^^^^^
としなくて良いのでしょうか?
住所不明
会議室デビュー日: 2004/03/24
投稿数: 8
投稿日時: 2004-03-24 20:26
すいません、記述が間違えていますので訂正します。

以下修正========================================
しかしながら、ソース例などを調べてみると
CallableStatement st = Conn.prepareCall("{call GetXXX}");
st.execute();
などのが見受けられます。

戻り値であるbooleanはどうなっているのでしょうか?

これは
CallableStatement st = Conn.prepareCall("{call GetXXX}");
boolean bl = st.execute();
^^^^^^^
としなくて良いのでしょうか?
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2004-03-24 20:43
質問の意味を理解しきれていませんが・・・

execute()の戻り値は
「最初の結果が ResultSet オブジェクトの場合は true。
 更新カウントであるか、または結果がない場合は false 」
となっているので、検索or更新がはっきりしている場合は戻り値を使う必要がないかと。
住所不明
会議室デビュー日: 2004/03/24
投稿数: 8
投稿日時: 2004-03-24 21:04
ぽんさん、ありがとうございます。
初歩的なことが分かってないため申し訳ないです。

検索or更新がはっきりしている場合でも、戻り値があるということはtrueかfalseが
戻り値として戻ってくるかと思いますが、その戻り値は変数で受けなくても
特に問題にはならないのでしょうか?

例えば、
CallableStatement st = Conn.prepareCall("{call GetXXX}");
st.executeQuery();
を実行したときの、ResultSetや
CallableStatement st = Conn.prepareCall("{call GetXXX}");
st.executeUpdate();
を実行したときのintは
変数で受けてなくても良いのでしょうか?
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2004-03-24 21:10
質問の意図は「関数の戻り値を受け取らなくても良いか?」で宜しいでしょうか?

必要が無いなら受け取らなくても良いです。

ここ読むと疑問が解決するかな?

[ メッセージ編集済み 編集者: ぽん 編集日時 2004-03-24 21:13 ]
住所不明
会議室デビュー日: 2004/03/24
投稿数: 8
投稿日時: 2004-03-24 21:16
ぽんさん、ありがとうございます。

「関数の戻り値を受け取らなくても良いか?」であってます。
紛らわしい質問でご迷惑をおかけしました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)