這兩天由於項目的原因,臨時抱抱佛腳,學了學在C裡嵌入sql來操作PostgreSQL的東西,寫了一個小例子,包括串連資料庫,建立表,插入資料,選擇,更多的資料,可以參考PostgreSQL8.0的中文手冊。
可以先使用文字編輯器書寫.pgc檔案,然後用PostgreSQL的安裝目錄下的bin裡的ecpg,來把.pgc檔案產生.c檔案,然後再使用c編譯器來產生對應的可執行程式,我在windows上,使用的是VC++,如果編譯時間提示找不到標頭檔或lib,可以把PostgreSQL安裝目錄下的include目錄和lib目錄引進來。
下面是.pgc檔案的代碼,產生的.c檔案比較長,就不寫了
int main(int argc, char *argv[])
{
EXEC SQL CONNECT TO servername@192.168.2.5 USER username/password ;
EXEC SQL INCLUDE SQLCA;
if ( sqlca.sqlcode )
{
printf("Connect failed\n"); //串連失敗
}
else
{
EXEC SQL BEGIN DECLARE SECTION;
char ascii[16 + 1]; //在我的系統上,如果不加1,在控制台列印出來後面會有亂碼
EXEC SQL END DECLARE SECTION;
printf("Connect success \n");
//建立表
EXEC SQL CREATE TABLE foo (number integer, ascii char(16));
EXEC SQL CREATE UNIQUE INDEX num1 ON foo(number);
EXEC SQL COMMIT;
printf("Table Created\n");
//插入資料
EXEC SQL INSERT INTO foo (number, ascii) VALUES (9999, 'doodad');
EXEC SQL COMMIT;
printf("Inserted\n");
//查詢
EXEC SQL SELECT ascii INTO :ascii FROM foo WHERE number = 9999;
printf("ascii=%s\n",ascii);
}
EXEC SQL DISCONNECT; //關閉串連
return 0;
}