PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# ecpg

## 名前

ecpg -- 埋め込みSQL用Cプリプロセッサを使用する

## 概要

`ecpg` [`option`...] `file`...

## 説明

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

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

このマニュアルページでは埋め込みSQL言語については説明しません。 第33章を参照してください。

## オプション

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

`-c`

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

`-C `mode``

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

`-D `symbol``

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

`-i`

  同様にシステムインクルードファイルも解析します。

`-I `directory``

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

`-o `filename``

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

`-r `option``

  実行時の動作を選択します。 以下のいずれかを`option`として取ることができます。

  `no_indicator`

    指示子を使用せずにNULL値を表す特殊な値を使用します。 歴史的にこの方式を使用したデータベースが存在します。

  `prepare`

    すべての文を使用する前に準備します。 libecpgは準備済みの文のキャッシュを保持し、再実行される場合に文を再利用します。 キャッシュが満杯になった場合、libecpgは最も古い文を解放します。

  `questionmarks`

    互換性という理由でクエスチョンマークをプレースホルダとして許します。 これは長い間デフォルトとして使用されていました。

`-t`

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

`-v`

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

`--version`

  ecpgのバージョンを表示し、終了します。

`--help`

  ecpgのコマンドライン引数の使用方法を表示し、終了します。

## 注釈

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

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

使用するシステムにおいて上記の2つに対応するディレクトリを調べるには、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

前のページ | ホーム | 次のページ
dropuser | 上に戻る | pg_basebackup