• 在c中嵌入sql操作PostgreSQL


     这两天由于项目的原因,临时抱抱佛脚,学了学在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;
    }

  • 相关阅读:
    SQL数据库数据优化SQL优化总结( 百万级数据库优化方案)
    三星S8相机黑画面解决
    三星Galaxy S8 刷机经验记录
    2018.12.02 Socket编程之初识Socket
    工作至今
    巧用std::shared_ptr全局对象释放单例内存
    C++标准库之迭代器
    Phone 3rd Recovery
    进电机之两相双极性步进电机仿真
    使用Pretues仿真Arduino驱动步进电机
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/C_Postgre_SQL.html
Copyright © 2020-2023  润新知