libpqxx 入门教训

来源:互联网 发布:天翼飞young3.09 算法 编辑:程序博客网 时间:2024/05/18 01:34

继续上篇文章,编译完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程序没有任何问题!

0 0
原创粉丝点击