• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:oo4o。executeSQLにてupdate実行後、実行件数取得は?)

oo4oのexecuteSQLでupdate実行後の実行件数を取得方法は?

このQ&Aのポイント
  • oo4oを使用してオラクルDBに接続し、executeSQLメソッドによりupdate処理を実行した場合、実行結果の件数を知りたい場合はどうすれば良いかについて教えてください。
  • Javaの場合は戻り値として実行結果の件数が返ってくるため簡単ですが、oo4oのexecuteSQLメソッドではどのように実行結果の件数を取得するのか分からないです。
  • また、where句に当てはまるレコードが無い場合でも処理が成功としてエラーが出ないため、実行結果の件数を取得する方法が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>result = OraDB.ExecuteSQL sql '☆1 括弧がありませんねぇ(^^; result = OraDB.ExecuteSQL(sql)

dd44
質問者

お礼

ええー。それですか? 「result = 」が無ければカッコ無しでも通るんですよ。。?

dd44
質問者

補足

ビンゴでした。かっこつけたらちゃんと動きました。ありがとう御座います。 ・・・っていうか、なにこの言語・・

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>実行すると「構文エラー」・・・ うーん、構文エラーって納得いきませんねぇ。 どんなコードかいてますか?

dd44
質問者

お礼

ホント、単純なコードなんですが、以下抜粋です。 ---- Dim OraSession As Object Dim OraDB As Object Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDB = OraSession.DbOpenDatabase(DB_TNSNAME, DB_USERNAME & "/" & DB_PASS, 0&) Dim result As Integer Dim sql As String sql = "update ~(省略) " OraSession.BeginTrans result = OraDB.ExecuteSQL sql '☆1 OraSession.CommitTrans ---- この☆1の部分の「result = 」を消すとうまく行くんですが、これがあると、エディタの時点で赤くなってしまっています。。resultの型が間違っているのかと色々試したんですが、ダメでした。☆1の行の「result = 」を消し、その次の行に「result= OraDB.GetRowsProcessed」を入れても、「オブジェクトは、このプロパティまたはメソッドをサポートしていません」と出てしまいます。。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>うーん,IntegerでもLongでも試してみたんですけど、コードエディタの時点で赤くなってしまって、実行すると「構文エラー」・・・ もしかして、タイプライブラリを参照設定していますか? oo4o、タイプライブラリ使うとたまに変な動きをしたような・・・

dd44
質問者

お礼

タイプライブラリの参照設定はしてありました。 一応外して試してみたんですが、どの方法でも結局おなじエラーになってしまいますね。。 それにしてもAccessの参照設定ってなんでこんなに分かりにくいんだろう…なにがなんだか。。 ありがとう御座いました。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

ExecuteSQLメソッドの戻り値

dd44
質問者

お礼

あは、そのまんまですかw Integerの変数に戻り値を入れようとしたらエラーになったんで、てっきり戻り値が無いのかと思ってました。型が違うだけで、早とちりしていたということですね;;試してみます。ありがとうございました。

dd44
質問者

補足

うーん,IntegerでもLongでも試してみたんですけど、コードエディタの時点で赤くなってしまって、実行すると「構文エラー」・・・ OraDBに対して、GetRowsProcessedというメソッドも試してみたのですが、まったく同じで、サポートされていないということでした。 これはoo4oのバージョン(8.1.5.3.4)なども関係してくるのでしょうかね・・? ネットで探すと、実行結果の件数が戻り値として戻ってくるという話もあり(→×)、GetRowsProcessedで件数が取れるという話もあり(→×)、またoo4oのヘルプでは「操作の正常な終了(OSUCCESS)または失敗(OFAILURE)を示すoresultを戻します。」とあるので、これでは件数は取れないです。。 もし何かアドバイスありましたらどなたか引き続きよろしくお願いします・・。

関連するQ&A