ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

7.4.2 アプリケーションのコンパイル

COBOL言語による埋め込みSQLソースファイルの名前には拡張子pcoを付けてください。

pcoファイルをecobpgコマンドでプレコンパイルするとCOBOL言語のソースファイルが作成されるので、COBOLコンパイラを使用してコンパイルしてください。

プレコンパイルの例

ecobpg testproc.pco

ecobpgコマンドのオプションにCOBOLコードの記法として、固定形式または可変形式を指定することができます。デフォルトは固定形式となります。

COBOLコードの記法およびオプションの指定方法については、“D.1 機能と操作における注意事項”と“D.12.1 ecobpg”を参照してください。

SQL文に対して、オプティマイザヒントのブロックコメントを指定している場合は、ecobpgコマンドに以下のオプションを指定します。

--enable-hint

オプティマイザヒントのブロックコメント(以降、ヒント句と呼びます)を有効にします。本オプションを指定しない場合、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のソースファイルのエンコードを指定します。

-E エンコード

エンコードは“UTF8”、“SJIS”、“EUC_JP”のいずれかを設定することができます。

本オプションを省略した場合はロケールで処理します。


プレコンパイラにより出力されたCOBOL言語のアプリケーションのコンパイル時は、以下のオプションを指定します。

SolarisLinuxLinux/Solarisの場合
SolarisLinux表7.1 インクルードファイルとライブラリのパス

オプションの種類

オプションの指定方法

インクルードファイルのパス

-I/<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/include

ライブラリのパス

-L/<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>/lib

SolarisLinux表7.2 COBOL言語用ライブラリ

ライブラリの種類

ライブラリ名

動的ライブラリ

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
WindowsWindows(R)の場合

環境変数で、インクルードファイルとライブラリのパスが設定されている場合、コンパイル時に下記のオプションの指定は不要です。

Windows表7.3 インクルードファイルとライブラリのパス

オプションの種類

オプションの指定方法

インクルードファイルのパス

<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>\include

ライブラリのパス

<FUJITSU Enterprise Postgres クライアント機能のインストールディレクトリ>\lib

Windows表7.4 COBOL言語用ライブラリ

ライブラリの種類

ライブラリ名

リンク用ライブラリ

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