ここまでで、埋め込みSQL COBOLプログラムの作成方法は理解できたと思います。 ここからはそのコンパイル方法についてお話しします。 コンパイルの前に、そのファイルを埋め込みSQLCOBOLプレコンパイラに通します。 これは、使用するSQL文を特別な関数呼び出しに変換します。 コンパイル後、必要な関数を持つ特別なライブラリとリンクしなければなりません。 これらの関数は引数から情報を取り出し、libpqを使用してそのSQLを実行し、出力用に指定された引数にその結果を格納します。
プリプロセッサプログラムはecobpgという名前です。 通常、埋め込みSQLプログラムの拡張子は.pcoとします。 prog1.pcoという名前のプログラムファイルがある場合、単純に以下を呼び出すことで前処理を行うことができます。
ecobpg prog1.pco
これはprog1.cobという名前のファイルを作成します。 入力ファイルがこの提案パターンに従った名前でない場合、-o オプションを使用して明示的に出力ファイルを指定することができます。
前処理後のファイルは普通にコンパイルできます。使用するコンパイラのマニュアルに従ってください。
生成されたCOBOLソースファイルはecobpgのインストレーションに付随する登録文ファイルをインクルードします。 ですので、デフォルトで検索されない場所にecobpgをインストールした場合は、コンパイル用のコマンドラインにインクルードファイルの検索パスを指定するオプションを追加する必要があります。
埋め込みSQLプログラムをリンクするためには、libecpgライブラリを含めなければなりません。
繰り返しになりますが、コマンドラインにライブラリ検索パスを指定するオプションを追加する必要があります。
大規模プロジェクトの構築処理をmakeを使用して管理している場合、以下の暗黙規則をMakefileに含めておくと便利です。
ECOBPG = ecobpg %.cob: %.pco $(ECOBPG) $<
ecobpgコマンドの完全な構文は“D.12.1 ecobpg”に説明があります。
現在、ecobpgはマルチスレッドには対応していません。