名前
sqlcobol -- SQL埋込みCOBOLプログラムのコンパイル・リンク
形式
sqlcobol [ -l ソースリストを出力するディレクトリ ] [ -t COBOLプログラムソースを出力するディレクトリ ] [ { -I インクルードファイルの配置ディレクトリ} ... ] [ -d データベース名 ] [ { -W { 88 | 92 | 95 | 96 | 2000 | 2007 } | -R } ] [ -f ] [ -A ] [ -n ] [ -G ] [ -g ] [ -E1 ] [ -T ] [ -Z ] [ -v9 ] [ -un ] [ -L リンカへのオプション ] SQL埋込みCOBOLプログラムのファイル名 [ cobolコマンド用のオプション | cobol32コマンド用のオプション ]
機能説明
SQL埋込みCOBOLプログラムを、コンパイルおよびリンクします。
オプション
本コマンドのオプションはすべて環境変数“SQLPCOB”で指定することができます。
環境変数“SQLPCOB”にパラメタを設定しておくと、コマンド実行時にオプションを指定する必要がなくなります。
パラメタが重複した場合の優先順位は、本コマンドのオプション、環境変数“SQLPCOB”の順番となります。
環境変数“SQLPCOB”の設定は、setコマンドで行うことができます。
以下にsetコマンドの例を示します。
set SQLPCOB= -l c:\rdb2\sqlapp\list -t c:\rdb2\sqlapp\csrc -I c:\rdb2\sqlapp\include
出力するソースリストの出力先ディレクトリを指定します。
ディレクトリに指定できる長さは、1024バイトまでです。
ソースリストとは、SQL埋込みCOBOLプログラムの内容と行番号を、コンパイル後のソースファイルの行番号と対応付けたリストです。
ソースリストのファイル名は、SQL埋込みCOBOLプログラムファイル名の拡張子を“.lst”に変換したものになります。
本オプションを省略した場合、カレントディレクトリに出力されます。
コンパイル後のCOBOLプログラムのソースファイルを出力するディレクトリを指定します。
ディレクトリに指定できる長さは、1024バイトまでです。
ソースファイル名は、SQL埋込みCOBOLプログラムのファイル名の拡張子を“.cob”に変換したものとなります。
本オプションを省略した場合、カレントディレクトリに出力されます。
SQL埋込みCOBOLプログラム中にINCLUDE文を記述している場合、取り込むファイルの配置先ディレクトリを指定します。
ディレクトリに指定できる長さは、1024バイトまでです。
このオプションは、複数回指定できますが、有効となるディレクトリの数は、環境変数での指定も含めて10個までです。
sqlcobolによるディレクトリのサーチ手順は、以下のようになります。
カレントディレクトリ
sqlcobolコマンドの-Iオプション
環境変数“SQLPCOB”の-Iオプション
環境変数“INCLUDE”
SQL埋込みCOBOLプログラムで利用するデータベース名を指定します。
SQL文の予約語とSQL機能のレベルをSQL88、SQL92、SQL95、SQL96、SQL2000またはSQL2007でコンパイルする場合に指定します。
-Wオプションを指定した場合は、予約語とSQL機能のレベルを1つ選んで指定します。
また、-Rオプションを指定した場合は、SQL88でコンパイルします。
本オプションを省略した場合は、SQL2007でコンパイルします。
SQL埋込みCOBOLプログラムの記述形式が、固定形式の場合に指定します。
省略した場合は、可変形式とみなします。
なお、自由形式は未サポートです。
SQL埋込みCOBOLプログラム中の引用符の記述が、単一の引用符(')の場合に指定します。
省略した場合、二重引用符(")とみなします。
SQL埋込みCOBOLプログラム中の英小文字を英大文字と等価に扱わない場合に指定します。
SQL埋込みCOBOLプログラム中に集団項目を使用する場合に指定します。
COBOL行番号連携機能を利用する場合に指定します。
本オプションを指定した場合には、ソースリストファイルは作成されません。
SQL埋込みCOBOLプログラム中に集団項目繰り返しホスト変数を使用する場合に指定します。
本オプションを指定すると、FOR句を指定したINSERT文に集団項目繰り返しホスト変数を指定することができます。
また、プログラム中に集団項目を使用することができます。
マルチスレッド上で動作するSQL埋込みCOBOLプログラムを作成する場合に指定します。
本オプションを指定する場合は、cobolコマンド用のオプションに“THREAD(MULTI)”を指定する必要があります。
COBOLソース単位がクラス定義の場合に指定します。
64ビットのSQL埋込みCOBOLプログラムを作成する場合に指定します。
アプリケーションの文字コード系としてUNICODEを使用する場合に指定します。
リンカへのオプションを指定します。
複数のオプションを指定する場合などで途中に空白を含む場合は、二重引用符(")で囲んでください。
オペランド
コンパイル前処理の対象とする、SQL埋込みCOBOLプログラムのソースファイル名を指定します。
sqlcobolは、SQL埋込みCOBOLプログラムのロードモジュールを作成するために、cobolコマンドを実行します。
このとき、cobolコマンドに渡すオプションを指定します。
sqlcobolは、SQL埋込みCOBOLプログラムのロードモジュールを作成するために、cobol32コマンドを実行します。
このとき、cobol32コマンドに渡すオプションを指定します。
使用例
副プログラム( demosub.eco )をコンパイルします。
INCLUDE文により取り込むファイルが配置されたディレクトリは“c:\rdb\include”とします。
sqlcobol -l c:\rdb\include demosub.eco
主プログラム( demomain.eco )から実行モジュールを作成します。
実行モジュール名は“demomain.exe”とします。
“demomain.eco”は主プログラムなので、cobol32コマンド用オプションに“-M”を指定する必要があります。
sqlcobol -l c:\rdb\include -L "-out:..\bin\demomain" demomain.eco -M
主プログラム(demomain.eco )と、副プログラム(demosub.eco ) を静的結合します。
主プログラムの実行モジュール名は“demomain.exe”とします。
sqlcobol -l c:\rdb\include demosub.eco sqlcobol -l c:\rdb\include -L "-out:..\bin\demomain demosub.obj" demomain.eco -M
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
オプション指定後の最初のオペランドを、SQL埋込みCOBOLプログラムのファイル名とみなします。
SQL埋込みCOBOLプログラムのファイル名の拡張子に“.cob”、“.cobol”および“.lst”は指定できません。
-dオプション指定をした場合は、同一システム内であることが必要です。
-dオプション指定をした場合は、SQL埋込みCOBOLプログラムにCONNECT文を記述してはいけません。
環境変数RDBDBにデータベース名を指定している場合でも、本コマンドで-dオプションを指定している場合は、-dオプションで指定したデータベース名が有効となります。
sqlcobolで作成されるファイルの一覧を以下の表に示します。ファイル名は、SQL埋込みCOBOLプログラムのファイル名の拡張子を、以下の表で示す拡張子に置き換えた名前となります。
ファイルの種類 | 拡張子 | 備考 |
---|---|---|
SQL文を取り除いたファイル | ~.cobol | 作業用ファイル(注2) |
ソースリストファイル | ~.lst | 作業用ファイル(注3) |
ロードモジュール | (注1) | SQL埋込みCOBOL |
注1) ロードモジュールのファイル名は、リンカ用のオプション-out:で指定します。
注2) COBOL言語のデバッグを使用してデバッグを行う場合に必要となります。
注3) -gオプションを指定した場合、ソースリストファイルは作成されません。
sqlcobolの処理には、2つの段階があります。sqlcobolを実行すると、処理中の段階が以下のように表示されます。
“Preprocess”の表示は、コンパイル前処理の実行中を示します。ホスト変数の使用方法などに誤りがある場合のエラーは、この段階で検出されます。
“COBOL compile”の表示は、cobolコマンドによるコンパイル・リンクの実行中を示します。 COBOL言語の記述やロードモジュールのリンクに関するエラーは、この段階で検出されます。
cobolコンパイル時には、“NOALPHAL”オプションがデフォルトで指定されます。
cobolソース単位がクラス定義の場合、COBOL97(V40L10)以降でコンパイルしてください。
マルチスレッド上で動作するSQL埋込みCOBOLプログラムを作成する場合、COBOL97(V50L10)以降でコンパイルしてください。また、動作時には環境変数“@CBR_SYMFOWARE_THREAD=MULTI”が必要となります。