無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

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


powered by SEO.CUG.NET