社内SEの徒然なる日記

NetCOBOLでのホスト変数の使い方

ホスト変数とは

ホスト変数とはSQL文中に記述し、条件や値を受けとることが出来る変数のこと。
逆にいえば、ホスト変数以外はSQL文中に記述できません。

※ 前回(http://harikofu.blog.fc2.com/blog-entry-45.html)と内容が重複します。

ホスト変数の宣言

【構文】

EXEC SQL BEGIN DECLARE SECTION END-EXEC.

ホスト変数


EXEC SQL END DECLARE SECTION END-EXEC.


1.「 DATA DIVISION. 」 の 「 WORKING-STORAGE SECTION. 」 で記述します。
2.EXEC SQL BEGIN DECLARE SECTION END-EXEC.とEXEC SQL END DECLARE SECTION END-EXEC.で囲まれた範囲に宣言された変数がホスト変数となります。

宣言の例


EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 H-FSMACTTHTM PIC X(006).
01 H-CSVPUT-CNT PIC 9(012).
EXEC SQL INCLUDE XXXXX999.CBL END-EXEC.
EXEC SQL END DECLARE SECTION END-EXEC.


実際の宣言は上記の通り、注意点は 「 INCLUDE XXXXX999.CBL 」です。
INCLUDE文はCOBOL言語のCOPY句に該当します。
SQL文やホスト変数の宣言の場合はCOPY句ではなく、INCLUDE文を使用して下さい。

使用方法

実際のプログラム中では下記のように使用します。

【使用例】ABCDテーブルからFSASが10の件数を取得する

MOVE "10" TO H-FSMACTTHTM.
EXEC SQL
SELECT COUNT(*) INTO :H-CSVPUT-CNT
FROM ABCD
WHERE FSAS = RTRIM(:H-FSMACTTHTM)
END-EXEC.


上記の例のように、ホスト変数は EXEC SQL ~ END-EXEC の範囲内で使用するときは先頭に:をつける必要があります。

前回:NetCOBOLでOracleに接続してみた
次回:NetCOBOLでSQLCAを使ってみる
投稿記事の一覧 : http://harikofu.blog.fc2.com/blog-entry-22.html

--- blog end ---


スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する