在c中嵌入sql操作PostgreSQL

來源:互聯網
上載者:User
 這兩天由於項目的原因,臨時抱抱佛腳,學了學在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;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.