- ベストアンサー
SQLServer DELETE 件数取得
COBOL上(NETExepress5.0)にSQL構文を埋め込んでプログラムを作っています。 DELETE文を発行して、そのDELETE件数を取得して、DISPLAY文に表示したいのですが、 どのようにすればよいでしょうか。 DELETE文(COBOL文中) 例) EXEC SQL DELETE FROM テーブル名 END-EXEC 先にSELECT COUNT(*) FROM テーブル名 とかしてもかまわないです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 不確かですがCOBOLでROWCOUNTは使えなかったような気がするので… SELECT COUNT(*) INTO :ホスト変数 FROM テーブル名 DISPLAY ホスト変数
その他の回答 (2)
- hagure-bora
- ベストアンサー率33% (15/45)
回答No.2
「ホスト変数」を使う。
質問者
補足
ありがとうございます。 「ホスト変数」をどうCOBOLに使えばいいのかがよく分からないのです。 申し訳ありませんが、具体例など沿えていただければ幸いです。
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.1
先にSELECT COUNT(*) FROM テーブル名 とかしてもかまわないです。 問題は起こらないかもしれませんが、実際に消えた件数がROWCOUNTに返ってきますので こちらをおすすめします。
質問者
補足
maiko0318さん 有難うございます。 ROWCOUNTに件数をもっているということはわかっているのですが、 実際にCOBOLにどう表現していいものか教えていただきたいのです。 取得した件数をDISPLAY文に表したのです。 言葉足らずで申し訳ありませんでした。 よろしくお願いします。
お礼
色々、試行錯誤を繰り返し、ようやくたどり着いた結果が次の通りです。 EXEC SQL DELETE FROM テーブル名 END-EXEC IF SQLCODE = ZERO DISPLAY SQLERRD(3) END-IF といった感じなら件数を取得できました。 他にやり方はあるのでしょうが、上記で十分使えます。 教えていただいたホスト変数のも試してみます。