AFAIKまず、埋め込みSQL Cファイル(pgc
拡張子)が必要です。簡単な例:
int main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
int ordinaryInt;
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO tcp:postgresql://localhost:5432/postgres AS myconnection USER postgres USING '12345';
EXEC SQL INSERT INTO t (value) VALUES ('abcdefgj');
EXEC SQL COMMIT;
EXEC SQL DISCONNECT myconnection;
return 0;
}
接続文字列はdocでよく説明されています。その後、あなたは、よく知られたCコードにコードの上に変換するために、ecpg.exe
を必要とする:
コンパイルする前に、あなたは特別な 関数呼び出しに使用するSQL文を変換し、組み込みSQL C プリプロセッサを通じてファイルを実行します。コンパイル後、必要な機能を含む特別なライブラリ にリンクする必要があります。例えば
:
"C:\Program Files (x86)\PostgreSQL\9.0\bin\ecpg.exe" -o ecpgTest.c ecpgTest.pgc
はあなたの生成されたCコードは次のようになります。
/* Processed by ecpg (4.2.1) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#line 1 "ecpgTest.pgc"
int main(void)
{
/* exec sql begin declare section */
#line 4 "ecpgTest.pgc"
int ordinaryInt ;
/* exec sql end declare section */
#line 5 "ecpgTest.pgc"
{ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:5432/postgres" , "postgres" , "'12345'" , "myconnection", 0); }
#line 7 "ecpgTest.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into t (value) values ('abcdefgj')", ECPGt_EOIT, ECPGt_EORT);}
#line 9 "ecpgTest.pgc"
{ ECPGtrans(__LINE__, NULL, "commit");}
#line 10 "ecpgTest.pgc"
{ ECPGdisconnect(__LINE__, "myconnection");}
#line 12 "ecpgTest.pgc"
return 0;
}
追加でC:\Program Files (x86)\PostgreSQL\9.0\include
パスを追加しますが、ディレクトリ(構成プロパティ→C/C++)を含めるとにlibecpg.lib
を入れます追加の依存関係(リンカー→入力)おそらく、C:\Program Files (x86)\PostgreSQL\9.0\lib
パスを追加のライブラリディレクティリーズ(リンカー→一般)に追加する必要があります。 (一部のDLLはC:\Program Files (x86)\PostgreSQL\9.0\bin
にあります)。
ありがとう、私は週の後半にそれを与えると、それがどのように行くか教えてください。 – Crewe