VC代码连接PostgreSql

       好。。在连接postgresql时,如果用ADO或是ODBC连接的话,资料就很多了,其实用代码也没多少。只是要注意的一些小细节会折磨人很久噢。。
      下载postgresql就不说了,我用的是8.0版本。在安装时,如果是软件运行的目标机器,那么,就不用选择develop选项中的组件了,如果是开发的话,你就保证其中的“include”和“lib”文件夹的组件被选中(安装过程一定要注意,因为界面会弹出很多对话框的),如果你是第二次在同一台机器上安装多次的话,有可能会产生“the user have already existed”那么可以使用net user postgres /delete (如果选择的用户名是postgres的话);
      VC开发时(其他环境其实时一样的,而且类似的例子多得要命),首先在postgresql的安装目录下的include中找到 libpq-fe.h的头文件,在lib中会有一个名为“MS”的文件夹,这个非常重要,如果找不到。那么说明安装时的开发组件没有装全,在这个文件夹中有一个“libpq.lib”的库文件这个是在windows环境下用到的库文件,不要将其中的“libpq.a”这个linux下的库添加到工程中来,这样会导致memory crash的(而且编译时不会出错,系统还认其中对数据库操作的函数噢,不可小视!)。。对,接下来就把这两个文件拷贝到当前工作目录里,或者将路径设置好就行了,可能还要拷贝进来一个头文件,编译时会提示的(小case了),可以了。。
接下来,就可以进行数据库的连接。查询了,查询时注意字符串的细节问题。。
 
#include <libpq-fe.h>
 
 char              * string_for_query;;
 PGconn        *conn_pointer;
 PGresult       *result;
 
 char       *pghost,
              *pgport,
              *pgoptions,
              *pgtty;
              *dbName;
              *username;
              *password;
 
 pghost       =     "localhost";      //IP address string is also ok       
 pgport        =     "5432";             
 pgoptions   =      NULL;          
 pgtty          =      NULL;              
 dbName     =      "student_db";    
 username   =      "postgres";      //postegres is the username that
                                                //set when installed postgresql it can be read
                                               // from registry
  password   =        "11111"    //set when insalled cannot get directly
  int main()
  {
      Conn_pointer=PQsetdbLogin(pghost, pgport, pgoptions, pgtty, dbName, username, password);
      if (PQstatus(conn) == CONNECTION_BAD)
             {
                      printf("cannot connect to the database! ");
return -1;
}
string_for_query="select * from student";//SQL query
……
……
}
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值