c++链接postgresql过程
来源:互联网 发布:golang chan 编辑:程序博客网 时间:2024/04/25 22:24
1.工程目录下需要加入4个dll文件(libeay32.dll
、libintl.dll
、libpq.dll
、ssleay32.dll
),这些文件都能在PostgreSQL安装目录下找到;
2.工程cpp文件中加入头文件#include <libpq-fe.h>
,libpq-fe.h
头文件包含了API接口函数声明及注释,下面介绍的函数在libpq-fe.h
中都能找到
3.按照下面的图配置项目属性
4.将libpq.lib附加到链接器中
5.按照API函数使用就可以了
char connectpresql[128];
sprintf_s(connectpresql, "dbname=postgres user=postgres password=123456");
PGconn *pcon;
pcon = PQconnectdb(connectpresql);
PGresult *res;
if (PQstatus(pcon) != CONNECTION_OK){
cout << "connect to db fail!" << endl;
}
//提取时间 timenow
SYSTEMTIME time;
GetLocalTime(&time);
char timenow[50] = { 0 };
sprintf_s(timenow, sizeof(timenow), "%d-%d-%d %d:%d:%d", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
char tempstrDB[1024] = { 0 };
PQsetClientEncoding(pcon, "GBK");
sprintf_s(tempstrDB, sizeof(tempstrDB), "SELECT username,userpassword FROM userinfo where username = '%s'", username.c_str());
res = PQexec(pcon, tempstrDB);
char * k = PQcmdTuples(res);
char * u_name;
char * u_pass;
if (PQresultStatus(res) == PGRES_TUPLES_OK&&PQntuples(res) > 0){
u_name = PQgetvalue(res, 0, 0);
u_pass = PQgetvalue(res, 0, 1);
}
6.本人遇到的一个问题
我的系统是64位的所以,PG也是64位的,在VS中编辑的时候按照上面步骤配置好后会报PG API函数的错误,无法引用的外部符号错误。解决办法就是VS默认是编辑32位的,改为64位的即可。
1.右键工程--属性
点击右上角的配置管理器
2.找到对应的项目,在平台一栏当中点击下拉,如果已经有64位平台,那么选择即可;如果没有,点击新建。
3.新建一个64位的平台,选择之,一路确认。然后再编译就不报错了。
留着以后配置看,同时希望对新手有用。我也是新手
- c++链接postgresql过程
- c编译链接过程
- 【C++】编译链接过程
- C++/C链接过程详解
- c语言编译、链接过程
- c/c++编译链接过程
- C语言 编译 链接 过程
- C的编译链接过程
- C语言编译、链接过程
- 【转】C,C++编译,链接过程详解
- 描述C,C++编译和链接过程
- 描述C,C++编译和链接过程
- C语言的编译链接过程
- C语言的编译链接过程详解
- C语言的编译链接过程详解
- C/C++编译链接过程详解
- C/C++编译与链接过程
- C语言的编译链接过程详解
- 鸡兔同笼问题
- java连接数据库代码sqlserver2008(在netbeans中)
- 工具软件--备忘与总结
- Machine Learning-Andrew Ng-week3
- 设计模式--创建者模式
- c++链接postgresql过程
- 《计算机网络 :自顶向下方法》第5章 链路层和局域网
- 人生杂谈---一次由吃杂酱面引发的感想
- 【IOS 开发学习总结-OC-44】★★ios开发之UI控件——文本框与多行文本控件(彩蛋——上拉刷新一般实现代码)
- 关于子目录源码文件编写makefile文件
- 验证码图片生成类
- Android学习记事(一)
- 数据库的相关操作
- linux VM中复制虚拟机后eth0变成eth1