ecpg <refpurpose>embedded SQL C preprocessor</refpurpose> — 埋め込みSQL用Cプリプロセッサ
ecpg
[option
...] file
...
<command>ecpg</command> is the embedded SQL preprocessor for C
programs. It converts C programs with embedded SQL statements to
normal C code by replacing the SQL invocations with special
function calls. The output files can then be processed with any C
compiler tool chain.
ecpg
は、Cプログラム用の埋め込みSQLプリプロセッサです。
SQL呼び出しを特別な関数呼び出しに置き換えることによって、埋め込みSQL文を含むCプログラムを、通常のCコードに変換します。
これにより、出力ファイルは、任意のCコンパイラツールを使用して処理することができます。
<command>ecpg</command> will convert each input file given on the
command line to the corresponding C output file. If an input file
name does not have any extension, <filename>.pgc</filename> is
assumed. The file's extension will be replaced
by <filename>.c</filename> to construct the output file name.
But the output file name can be overridden using the
<option>-o</option> option.
ecpg
は、コマンドラインで指定される各入力ファイルを対応するCの出力ファイルに変換します。
入力ファイル名に拡張子がなければ、.pgc
を仮定します。
出力ファイル名を構成するために、拡張子が.c
に置き換えられます。
しかし、出力ファイル名は-o
オプションによって指定でき、こちらが優先します。
If an input file name is just <literal>-</literal>,
<command>ecpg</command> reads the program from standard input
(and writes to standard output, unless that is overridden
with <option>-o</option>).
入力ファイルが-
だけであれば、ecpg
はプログラムを標準入力から読み込み(-o
で上書きされていなければ、標準出力へ書き出し)ます。
This reference page does not describe the embedded SQL language. See <xref linkend="ecpg"/> for more information on that topic. このマニュアルページでは埋め込みSQL言語については説明しません。 第34章を参照してください。
<command>ecpg</command> accepts the following command-line
arguments:
ecpg
は、以下のコマンドライン引数を受け付けます。
-c
Automatically generate certain C code from SQL code. Currently, this
works for <literal>EXEC SQL TYPE</literal>.
SQLコードから有効なCコードを自動的に生成します。
現在、このオプションはEXEC SQL TYPE
に対して使用できます。
-C mode
Set a compatibility mode. <replaceable>mode</replaceable> can
be <literal>INFORMIX</literal>,
<literal>INFORMIX_SE</literal>, or <literal>ORACLE</literal>.
互換モードを設定します。
mode
はINFORMIX
、INFORMIX_SE
、ORACLE
のどれかを取ることができます。
-D symbol
[=value
]
Define a preprocessor symbol, equivalently to the <command>EXEC SQL
DEFINE</command> directive. If no <replaceable>value</replaceable> is
specified, the symbol is defined with the value <literal>1</literal>.
プリプロセッサシンボルを定義します。これはEXEC SQL DEFINE
指示子と同じです。
value
が指定されない場合、シンボルは値1
で定義されます。
-h
Process header files. When this option is specified, the output file
extension becomes <literal>.h</literal> not <literal>.c</literal>,
and the default input file extension is <literal>.pgh</literal>
not <literal>.pgc</literal>. Also, the <option>-c</option> option is
forced on.
ヘッダファイルを処理します。
このオプションが指定されると、出力ファイルの拡張子は.c
ではなく.h
になり、デフォルトの入力ファイルの拡張子は.pgc
ではなく.pgh
になります。
また、-c
オプションが強制的に有効になります。
-i
Parse system include files as well. 同様にシステムインクルードファイルも解析します。
-I directory
Specify an additional include path, used to find files included
via <literal>EXEC SQL INCLUDE</literal>. Defaults are
<filename>.</filename> (current directory),
<filename>/usr/local/include</filename>, the
<productname>PostgreSQL</productname> include directory which
is defined at compile time (default:
<filename>/usr/local/pgsql/include</filename>), and
<filename>/usr/include</filename>, in that order.
追加のインクルード用パスを指定します。
これは、EXEC SQL INCLUDE
を使用してインクルードされるファイルを検索する際に使用されます。
デフォルトでは順に、.
(カレントディレクトリ)、/usr/local/include
、コンパイル時に定義されるPostgreSQLのインクルードディレクトリ(デフォルトでは/usr/local/pgsql/include
)、/usr/include
です。
-o filename
Specifies that <command>ecpg</command> should write all
its output to the given <replaceable>filename</replaceable>.
Write <literal>-o -</literal> to send all output to standard output.
ecpg
が全ての出力をfilename
に書き込むことを指定します。
出力をすべて標準出力に送るには-o -
と書いてください。
-r option
Selects run-time behavior. <replaceable>Option</replaceable> can be
one of the following:
実行時の動作を選択します。
以下のいずれかをoption
として取ることができます。
no_indicator
Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach. 指示子を使用せずにNULL値を表す特殊な値を使用します。 歴史的にこの方式を使用したデータベースが存在します。
prepare
Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement. すべての文を使用する前に準備(プリペア)します。 libecpgはプリペアド文のキャッシュを保持し、再実行される場合に文を再利用します。 キャッシュが満杯になった場合、libecpgは最も使用されていない文を解放します。
questionmarks
Allow question mark as placeholder for compatibility reasons. This used to be the default long ago. 互換性のために疑問符をプレースホルダとして許します。 これは大昔にデフォルトでした。
-t
Turn on autocommit of transactions. In this mode, each SQL command is
automatically committed unless it is inside an explicit
transaction block. In the default mode, commands are committed
only when <command>EXEC SQL COMMIT</command> is issued.
トランザクションの自動コミットを有効にします。
このモードでは、各SQLコマンドは明示的なトランザクションブロックの内部にない限り、自動的にコミットされます。
デフォルトのモードでは、EXEC SQL COMMIT
が発行された時にのみコマンドがコミットされます。
-v
Print additional information including the version and the "include" path. バージョンやインクルード用パスなどの補足情報を表示します。
--version
Print the <application>ecpg</application> version and exit. ecpgのバージョンを表示し、終了します。
-?
--help
Show help about <application>ecpg</application> command line arguments, and exit. ecpgのコマンドライン引数の使用方法を表示し、終了します。
When compiling the preprocessed C code files, the compiler needs to
be able to find the <application>ECPG</application> header files in the
<productname>PostgreSQL</productname> include directory. Therefore, you might
have to use the <option>-I</option> option when invoking the compiler
(e.g., <literal>-I/usr/local/pgsql/include</literal>).
前処理されたCコードファイルをコンパイルする際、コンパイラがPostgreSQLのインクルードディレクトリ内にあるECPGヘッダファイルを検索できるようにしなければなりません。
そのため、コンパイラの呼び出し時に、-I
オプションを使用しなければならない可能性があります(例:-I/usr/local/pgsql/include
)。
Programs using C code with embedded SQL have to be linked against
the <filename>libecpg</filename> library, for example using the
linker options <literal>-L/usr/local/pgsql/lib -lecpg</literal>.
SQLが埋め込まれたCプログラムには、リンカオプション-L/usr/local/pgsql/lib -lecpg
を使用するなどして、libecpg
ライブラリをリンクする必要があります。
The value of either of these directories that is appropriate for the installation can be found out using <xref linkend="app-pgconfig"/>. 使用するシステムにおいて上記の2つに対応するディレクトリを調べるには、pg_configを使用します。
If you have an embedded SQL C source file named
<filename>prog1.pgc</filename>, you can create an executable
program using the following sequence of commands:
埋め込み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