1.工程目录下需要加入4个dll文件(libeay32.dll
、libintl.dll
、libpq.dll
、ssleay32.dll
),这些文件都能在PostgreSQL安装目录下找到;
2.工程cpp文件中加入头文件#include
,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位的平台,选择之,一路确认。然后再编译就不报错了。
留着以后配置看,同时希望对新手有用。我也是新手