こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServer DELETE 件数取得

COBOL上(NETExepress5.0)にSQL構文を埋め込んでプログラムを作っています。

DELETE文を発行して、そのDELETE件数を取得して、DISPLAY文に表示したいのですが、
どのようにすればよいでしょうか。


DELETE文(COBOL文中)
例)
 EXEC SQL DELETE FROM テーブル名
 END-EXEC

先にSELECT COUNT(*) FROM テーブル名
とかしてもかまわないです。


よろしくお願いします。

投稿日時 - 2013-12-03 10:49:50

QNo.8371421

すぐに回答ほしいです

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

No.2です。
不確かですがCOBOLでROWCOUNTは使えなかったような気がするので…

SELECT COUNT(*) INTO :ホスト変数 FROM テーブル名
DISPLAY ホスト変数

投稿日時 - 2013-12-04 12:12:11

お礼

色々、試行錯誤を繰り返し、ようやくたどり着いた結果が次の通りです。

EXEC SQL DELETE FROM テーブル名
END-EXEC
IF SQLCODE = ZERO
DISPLAY SQLERRD(3)
END-IF

といった感じなら件数を取得できました。

他にやり方はあるのでしょうが、上記で十分使えます。


教えていただいたホスト変数のも試してみます。

投稿日時 - 2013-12-04 21:55:32

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

「ホスト変数」を使う。

投稿日時 - 2013-12-03 14:59:52

補足

ありがとうございます。

「ホスト変数」をどうCOBOLに使えばいいのかがよく分からないのです。

申し訳ありませんが、具体例など沿えていただければ幸いです。

投稿日時 - 2013-12-03 21:23:05

ANo.1

先にSELECT COUNT(*) FROM テーブル名
とかしてもかまわないです。

問題は起こらないかもしれませんが、実際に消えた件数がROWCOUNTに返ってきますので
こちらをおすすめします。

投稿日時 - 2013-12-03 12:38:13

補足

maiko0318さん

有難うございます。


ROWCOUNTに件数をもっているということはわかっているのですが、
実際にCOBOLにどう表現していいものか教えていただきたいのです。

取得した件数をDISPLAY文に表したのです。

言葉足らずで申し訳ありませんでした。

よろしくお願いします。

投稿日時 - 2013-12-03 13:32:36

あなたにオススメの質問