The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在c中嵌入sql操作PostgreSQL

Posted on 2006-05-19 11:17  Cure  阅读(2130)  评论(2编辑  收藏  举报
 这两天由于项目的原因,临时抱抱佛脚,学了学在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;
}