ECPG(1)

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

SYNOPSIS

ecpg [ option... ] file...

説明

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

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

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

オプション

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

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

-C mode
    互換モードを設定します。 modeはINFORMIXもしくは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
    実行時の動作を選択します。 現時点では、optionはno_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(1)を使用して調べることができます。

例

埋め込み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