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

# ecpg

## 名前

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

## 概要

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

## 説明

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

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

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

## オプション

`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を使用して調べることができます。

## 例

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