循序渐进PostgreSQL: 学习pqxx C++ API访问(三)

2014-11-24 18:24:21 · 作者: · 浏览: 4
k


D:\Projects\hisql.svn\trunk\learning\libpqxx-4.0\lib\libpqxxD.lib


D:\Projects\hisql.svn\trunk\learning\libpqxx-4.0\lib\libpqxxD.pdb


D:\Projects\hisql.svn\trunk\learning\libpqxx-4.0\lib\libpqxx_static.lib


D:\Projects\hisql.svn\trunk\learning\libpqxx-4.0\lib\libpqxx_staticD.lib


D:\Projects\hisql.svn\trunk\learning\libpqxx-4.0\lib\msdia80.dll


下边来看看最简单的示例:


iihero=# create user foo password 'foo1';


CREATE ROLE


[sql] view plaincopyprint


iihero=> create table t(id int primary key, col2 varchar(32));


注意: CREATE TABLE / PRIMARY KEY 将要为表 "t" 创建隐含索引 "t_pkey"


CREATE TABLE


iihero=> \encoding


GBK


iihero=> insert into t values(1 ,'不同类型的列表');


INSERT 0 1


iihero=> select * from t;


id | col2


----+----------------


1 | 不同类型的列表


(1 行记录)


iihero=> create table t(id int primary key, col2 varchar(32));


注意: CREATE TABLE / PRIMARY KEY 将要为表 "t" 创建隐含索引 "t_pkey"


CREATE TABLE


iihero=> \encoding


GBK


iihero=> insert into t values(1 ,'不同类型的列表');


INSERT 0 1


iihero=> select * from t;


id | col2


----+----------------


1 | 不同类型的列表


(1 行记录)


将编译出来后的include, lib目录提取到固定的目录,与你原来的postgresql的include和lib目录,可以合到一起。给开发使用。


下边是一个最简单的示例:


[cpp] view plaincopyprint


#include 


#include


int main()


{


pqxx::connection conn("dbname=iihero hostaddr=127.0.0.1 user=foo password=foo1" );


if(conn.is_open())


{


std::cout << "Connection succesful!" << std::endl;


std::cout << conn.options()<

}


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() << std::endl;


}




[cpp] view plaincopyprint #include #include int main() { pqxx::connection conn("dbname=iihero hostaddr=127.0.0.1 user=foo password=foo1" ); if(conn.is_open()) { std::cout << "Connection succesful!" << std::endl; std::cout << conn.options()<() << std::endl; } #include


#include


int main()


{


pqxx::connection conn("dbname=iihero hostaddr=127.0.0.1 user=foo password=foo1" );


if(conn.is_open())


{


std::cout << "Connection succesful!" << std::endl;


std::cout << conn.options()<

}


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() << std::endl;


}


需要注意的是,要将libpq.lib, libpqxx.lib, 以及头文件都设置上。如果动态库链接方式出现问题,可以尝试使用libpqxx的静态库。