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被很好地解釋。之後,你需要ecpg.exe
,改造上面的代碼爲著名的C代碼:
之前編譯運行通過嵌入式SQLÇ 預處理器,它轉換你用特殊 函數調用SQL語句的文件。編譯後,您必須鏈接到包含所需功能的特殊庫 。
例如:
"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