继续上篇文章,编译完libpqxx后使用他。
首先创建Win32 控制台应用程序后,添加
#include <iostream>
#include <pqxx/pqxx>
然后将上篇文章生成的lib文件和头文件添加到本项目中。(注意下面的配置方法对应于visual studio 2010)
项目 --> ...属性 --> 配置属性 --> vc++目录 --> 包含目录:D:\Source\libpqxx\include 库目录::D:\Source\libpqxx\lib
附加依赖项:
libpq.lib
libpqxxd.lib
wsock32.lib
后编译,写下如下代码:
try
{
pqxx::connection conn("dbname=test1 hostaddr=127.0.0.1 user=xxx password=xxx" );
if(conn.is_open())
{
std::cout << "Connection succesful!" << std::endl;
std::cout << conn.options()<<std::endl;
}
else
{
std::cout << "Something went wrong... oops" << std::endl;
}
pqxx::work w(conn);
//pqxx::result res = w.exec("SELECT 1");
// w.commit();
//std::cout << res[0][0].as<int>() << std::endl;
// 接着示例 访问表t中的数据, 先设置client端的字符集编码, 否则会出现乱码
conn.set_client_encoding("GBK");
pqxx::result r = w.exec("SELECT * FROM xxx");
for (pqxx::result::const_iterator row = r.begin(); row != r.end(); ++row)
{
for (pqxx::tuple::const_iterator field = row->begin();field != row->end();++field)
{
std::cout << field->c_str() << '\t';
}
std::cout << std::endl;
}
conn.disconnect();
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
return 1;
}
运行前将
PostgreSQL安装目录 \9.2\bin目录下的libeay32.dll libintl.dll libpq.dll libpqxx.dll ssleay32.dll拷贝到debug目录下即可。
经验:
1.假如你的程序时32位必须使用32位的lib反之64位也如此,否则编译错误提示找不到。。。入口。。。
2.release版的libpqxx.dll不能用在你的debug程序,我这里是出现错误。用在release程序没有任何问题!