标题
[pgsql]第一个连接 PostgreSQL 的 C/C++ 程序
clq
浏览(0) +
2008-07-01 11:05:33 发表
编辑
关键字:
[pgsql]第一个连接 PostgreSQL 的 C/C++ 程序
连接异常的顺利,比我的第一个 mysql 连接程序还顺利,其效率也比想像中的好.
兄弟我混乱的代码如下:
--------------------------------------------------
PGconn * conn = PQconnectdb("host=127.0.0.1 user=root password=root dbname=ggtong port=5432");
if (PQstatus(conn) == CONNECTION_OK)
{
PGresult * res = NULL;
/*
res = PQexec(conn, "insert into kline_min (mark) values ( 1 )");
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
printf("pgsql failed: %s", PQerrorMessage(conn));
PQclear(res);
}
PQclear(res);
*/
//PQsetClientEncoding(conn, "UNICODE");
//PQsetClientEncoding(conn, "GBK");
//PGresult * res = PQexec(conn, sql.c_str());
res = PQexec(conn, sql.c_str());
printf("sql:%s\r\n", sql.c_str());
if (res != NULL)
{
int status = PQresultStatus(res);
if (status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK)
{
//这个应该是取字段的值
//char * res_userid = PQgetvalue(res, 0, 0);
//char * res_password = PQgetvalue(res, 0, 1);
//....
}
else
{
printf("pgsql failed: %s", PQerrorMessage(conn));
PQclear(res);
}
PQclear(res);
}
}
PQfinish(conn);
--------------------------------------------------
代码一般都不困难的,第一次难的一般都是如何 include lib 等等.
1. #include //pgsql 并且要添加相应的搜索路径.
2. 链接 libpq.lib ,同样要添加相应的搜索路径.
3. 运行时将提示没有的 dll 放到程序所在路径就可以了,这些 dl l都在 pgsql 的 bin 目录中.
我的 pgsql 环境是 windows 8.8.3-1 版本,值得一提的是我的编码外部环境是 gbk, 内部是 SQL-ASCII. 后者是 pg 的一个选择项目,我不知道为什么是这个奇怪的值,之所以不用 unicode 是因为用 mysql 5 时发生过某些中文不能插入的情况.
clq
参考
http://my.yesky.com/manual/postgresql_8.0_CN/libpq-example.html
http://www.pgsqldb.org/pgsqldoc-8.1c/libpq-build.html
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.