ecpg

名前

ecpg -- 埋め込み SQL 用 C プリプロセッサ

概要

ecpg [option...] file...

説明

ecpg は、C プログラム用の埋め込み SQL プリプロセッサです。 ecpg は、SQL 呼び出しを特殊な関数呼び出しに置き換えることによって、埋め込み SQL 文を含む C プログラムを、通常の C コードに変換します。 これにより、出力ファイルは、どのような C コンパイラツールを使用しても処理することができます。

ecpg は、コマンドラインで指定される各入力ファイルを、対応する C 出力ファイルに変換します。 入力ファイルに .pgc という拡張子をつけておくと、出力ファイル名は拡張子が .c に置き換えられたものとなるので便利です。 入力ファイルの拡張子が .pgc でない場合、そのファイルのフルネームの末尾に .c を追加したものが出力ファイル名となります。 出力ファイル名は、-o オプションによってオーバーライドすることもできます。

このリファレンスページでは、埋め込み SQL 言語については説明しません。 第30章を参照してください。

オプション

ecpg は、以下のコマンドライン引数を受け付けます。

-c

SQL コードから確実な C コードを自動的に生成します。 現在、このオプションは EXEC SQL TYPE に対して使用できます。

-C mode

互換モードを設定します。 modeINFORMIXもしくは INFORMIX_SEのどちらかを取ることができます。

-D symbol

C プリプロセッサのシンボルを定義します。

-I directory

追加のインクルード用パスを指定します。これは、EXEC SQL INCLUDE を使用してインクルードされるファイルを検索する際に使用されます。 デフォルトは順に . (現行ディレクトリ)、/usr/local/include、コンパイル時に定義される PostgreSQL のインクルードディレクトリ (デフォルトでは /usr/local/pgsql/include)、および /usr/include です。

-o filename

ecpg が、すべての出力を filename に書き込むことを指定します。

-r option

実行時の動作を選択します。 現時点では、optionno_indicatorのみを取ることができます。

-t

トランザクションの自動コミットを有効にします。 このモードでは、各SQLコマンドは明示的なトランザクションブロックの内部にない限り、自動的にコミットされます。 デフォルトのモードでは、EXEC SQL COMMIT が発行された時にのみコマンドはコミットされます。

-v

バージョンやインクルード用パスなどの補足情報を表示します。

--help

コマンド使用法の簡単な説明を表示し、終了します。

--version

バージョン情報を出力し、終了します。

注釈

前処理された C コードファイルをコンパイルする際、コンパイラは PostgreSQL のインクルードディレクトリ内にある ECPG ヘッダファイルを検索可能でなければなりません。 そのため、コンパイラの呼び出しに -I オプションを使用しなければならない場合があります (例: -I/usr/local/pgsql/include)。

SQL が埋め込まれた C プログラムは、-L/usr/local/pgsql/lib -lecpg リンカオプションを使用するなどして、libecpg ライブラリをリンクする必要があります。

ご使用のシステムにおいて該当するこれらのディレクトリは、pg_config を使用して調べることができます。

埋め込み SQL を使用した prog1.pgc という C ソースファイルがある場合、次のコマンドシーケンスによって実行可能プログラムを作成することができます。

ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg