2.10.8 DMLの記述規則
DMLの記述規則を次に示します。
-
1UAPソースファイル中に記述できるDMLの数は,最大1,024です。
-
DMLは手続き部(PROCEDURE DIVISION)に記述します。
-
UAPソースファイル中にDMLの記述がなくてもかまいません。DMLの記述がない場合,pdsdbcblコマンドは作業場所節にSQL連絡領域の登録集原文と,ハンドラ用共通エリアとハンドラ用SD固有エリアの登録集原文のCOPY命令だけを展開します。
-
1UAPソースファイル中にDMLとSQLを混在して記述できません。
-
COBOLの命令とDMLは同一行に記述できません。記述した場合は,構文エラーになります。
-
DML先頭子は1行に記述してください。DML先頭子を複数行にわたって記述した場合,DML先頭子として認識されません。この場合,DMLはCOBOL命令に置換されません。
-
DMLはDML先頭子とDML終了子を含めて,12〜72欄の間に記述してください。12〜72欄の外にDMLを記述した場合,構文エラーになります。または,DMLと認識されないので,COBOL命令に置換されません。
-
DML先頭子の記述にエラーがある場合,pdsdbcblコマンドはDMLと認識できないため,COBOL命令に置換されません。
-
DML先頭子がある行からDML終了子がある行の間のデバッグ行は,注釈行に置換されてポストソースに出力されます。それ以外のデバッグ行は,そのままポストソースに出力されます。
-
一連番号領域(第1〜第6欄の範囲)にタブ文字は記述できません。
-
文字列定数と16進文字列定数の文字列を囲む記号には,アポストロフィ(')を使用してください。COBOL85の-Xcコンパイラオプション,COBOL2002の-DoubleQuoteコンパイラオプションを指定している場合でも,引用符(")は使用できません。
-
DMLの継続規則は,COBOLの「行のつなぎ」の規則に従います。
DMLで空白を必ず挿入する個所,または空白を挿入できる個所であれば,自由に行を変えて記述できます。また,複数行にわたって記述することもできます。
-
DMLで空白を挿入できない個所で行を変える場合は,任意の欄まで記述したあとに次の行の標識領域にハイフン(-)を記述し,プログラム原文領域の12欄以降から行の続きを記述してください。
-
文字列定数の途中で行を変える場合は,72欄まで記述したあとに次の行の標識領域にハイフン(-)を記述し,プログラム原文領域の12欄以降からアポストロフィ(')に続けて,文字列の続きを記述してください。※
-
引用符(")で囲んだ識別子の途中で行を変える場合は,72欄まで記述したあとに次の行の標識領域にハイフン(-)を記述し,プログラム原文領域の12欄以降から引用符(")に続けて,文字列の続きを記述してください。※
-
16進文字列定数の途中で行を変える場合は,先頭のXの直後で改行しないでください。72欄まで記述したあとに次の行の標識領域にハイフン(-)を記述し,プログラム原文領域の12欄以降からアポストロフィ(')に続けて,16進文字列の続きを記述してください。※
-
段落の見出しをDMLと同一行に記述できません。記述した場合は,構文エラーになります。
-
表意定数はDML中に指定できません。指定した場合,表意定数の示す値として解釈されないため,構文エラーになるおそれがあります。
-
文字列定数は,COBOL処理系の定める最大長とDMLの定める最大長のうち,短い方が使用可能な長さの上限になります。
DMLの定める最大長を超えた場合,UAPのプリプロセス時に構文エラーになります。プリプロセスが正常終了した場合でも,COBOL処理系の定める最大長を超えているときは,UAPのコンパイル時にエラーになります。
DMLで使用可能な文字列定数の最大長については,マニュアル「HiRDB 構造型データベース機能」の「DMLのデータ型」の「変換(比較)できるデータ型」を参照してください。
-
標識領域(第7欄)に全角文字は記述できません。
- 注※
-
72欄以前で改行した場合,pdsdbcblコマンドは72欄までの空白を補います。