COBOL言語による埋め込みSQLソースファイルの名前には拡張子pcoを付けてください。
pcoファイルをecobpgコマンドでプレコンパイルするとCOBOL言語のソースファイルが作成されるので、COBOLコンパイラを使用してコンパイルしてください。
ecobpg testproc.pco
ecobpgコマンドのオプションにCOBOLコードの記法として、固定形式または可変形式を指定することができます。デフォルトは固定形式となります。
COBOLコードの記法およびオプションの指定方法については、“D.1 機能と操作における注意事項”と“D.12.1 ecobpg”を参照してください。
SQL文に対して、オプティマイザヒントのブロックコメントを指定している場合は、ecobpgコマンドに以下のオプションを指定します。
オプティマイザヒントのブロックコメント(以降、ヒント句と呼びます)を有効にします。本オプションを指定しない場合、ecobpgのプレコンパイルによりヒント句が取り除かれ、ヒント句が無効となります。
ヒント句が指定可能なSQL文は、SELECT、INSERT、UPDATEおよびDELETEです。
ヒント句が指定可能な位置は、SELECT、INSERT、 UPDATE、DELETEまたはWITHのいずれかのキーワードの直後のみです。それ以外の場所に指定した場合は、構文エラーとなります。
EXEC SQL SELECT /*+ IndexScan(prod ix01) */ name_id INTO :name_id FROM prod WHERE id = 1 END-EXEC.
オプティマイザヒントの詳細については、“11.1.1 オプティマイザヒント”を参照してください。
埋め込みSQLのソースファイルのエンコードと、プレコンパイル実行時のロケールが異なる場合は、ecobpgコマンドに以下のオプションを指定して、埋め込みSQLのソースファイルのエンコードを指定します。
エンコードは“UTF8”、“SJIS”、“EUC_JP”のいずれかを設定することができます。
本オプションを省略した場合はロケールで処理します。
プレコンパイラにより出力されたCOBOL言語のアプリケーションのコンパイル時は、以下のオプションを指定します。
オプションの種類 | オプションの指定方法 |
---|---|
インクルードファイルのパス | -I/<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/include |
ライブラリのパス | -L/<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/lib |
ライブラリの種類 | ライブラリ名 |
---|---|
動的ライブラリ | libecpg.so |
静的ライブラリ | libecpg.a |
例
COBOL言語ライブラリを動的リンクするアプリケーションのコンパイル例を説明します。
なお、“<x>”は製品のバージョンを示します。
Linux 64ビット版アプリケーションの場合
cobol -M -o testproc -I/opt/fsepv<x>client64/include -L/opt/fsepv<x>client64/lib -lecpg testproc.cob
Linux 32ビット版アプリケーションの場合
cobol -M -o testproc -I/opt/fsepv<x>client32/include -L/opt/fsepv<x>client32/lib -lecpg testproc.cob
Solaris 64ビット版アプリケーションの場合
cobol -M -o testproc -I/opt/fsepv<x>client64/include -L/opt/fsepv<x>client64/lib -lecpg testproc.cob
Solaris 32ビット版アプリケーションの場合
cobol -M -o testproc -I/opt/fsepv<x>client32/include -L/opt/fsepv<x>client32/lib -lecpg testproc.cob
環境変数で、インクルードファイルとライブラリのパスが設定されている場合、コンパイル時に下記のオプションの指定は不要です。
オプションの種類 | オプションの指定方法 |
---|---|
インクルードファイルのパス | <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>\include |
ライブラリのパス | <FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>\lib |
ライブラリの種類 | ライブラリ名 |
---|---|
リンク用ライブラリ | libecpg.lib |
動的ライブラリ | libecpg.dll |
例
COBOL言語ライブラリを動的リンクするアプリケーションのコンパイル例を説明します。
64ビット版のオペレーティングシステムでコンパイルする例です。
なお、“<x>”は製品のバージョンを示します。
64ビット版アプリケーションの場合
> SET LIB=%ProgramFiles%\Fujitsu\fsepv<x>client64\lib;%LIB% > SET INCLUDE=%ProgramFiles%\Fujitsu\fsepv<x>client64\include;%INCLUDE% > cobol -I "%ProgramFiles%\Fujitsu\fsepv<x>client64\include" -M testproc.cob > link testproc.obj F4AGCIMP.LIB LIBCMT.LIB LIBECPG.LIB /OUT:testproc.exe
32ビット版アプリケーションの場合
[NetCOBOL V10.5以前の場合]
> SET LIB=%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\lib;%LIB% > SET INCLUDE=%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\include;%INCLUDE% > cobol32 -I "%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\include" -M testproc.cob > link testproc.obj LIBC.LIB F3BICIMP.LIB LIBECPG.LIB /OUT:testproc.exe
[NetCOBOL V11.0以降の場合]
> SET LIB=%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\lib;%LIB% > SET INCLUDE=%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\include;%INCLUDE% > cobol32 -I "%ProgramFiles(x86)%\Fujitsu\fsepv<x>client32\include" -M testproc.cob > link testproc.obj MSVCRT.LIB F3BICIMP.LIB LIBECPG.LIB /OUT:testproc.exe