恣意编程言语拜候PostgreSQL:C++接口

2016-09-25 08:04  来源:未知  编辑:admin  已有( )人围观
导读【IT168 技术】在之前的文字《恣意言语拜候PostgreSQL:C言语接口》中,伸见了何...

  【IT168 技术】在之前的文字《恣意言语拜候PostgreSQL:C言语接口》中,伸见了何以运用C言语拜候PostgreSQL,皓天将伸见何以运用C++拜候PostgreSQL。

  官方必赢亚洲备用网址的C++接口API称为libpqxx,但没拥有拥有与PostgreSQL源码终止绑定,用户却以从产品分发库或孤立下载终止装置。README文件提到用户却以在Linux、BSD、Solaris、Irix、HP-UX、AIX和装置Cygwin的Windows上运用libpqxx。装置libpqxx前要先装置libpq,鉴于前者是基于后者的。

  在C++中,namespace被命名为pqxx,用户必须包罗以该名称命名的头文件。以下为壹个骈杂衔接与查询的例儿子:

  #include

  #include

  using namespace std;

  int main()

  {

  pqxx::connection conn;

  pqxx::work w(conn);

  pqxx::result res = w.exec("SELECT 1");

  w.commit();

  cout << res[0][0].as() << endl;

  }

  假设运转正确,则该以次会打印出产“1”,却以运用try/catch关键字到来处理衔接中能出产即兴的错误。假设要像在C言语中这么运用argv[x],却以像如次方法衔接字符串:

  pqxx::result res = w.exec("SELECT" + w.quote(argv[1]));

  这么,该何以对数据终止查询与前往呢?鉴于管数据的res变量是壹个数组,故此却以使用循环到来读取res中的数据元斋:

  for (int rownr=0; rownr < res.size(); ++rownr)

  {

  const result::tuple row = res[rownr];

  for (int colnr=0; colnr < row.size(); ++colnr)

  {

  const result::field = row[colnr];

  cout << field.c_str() << \t;

  }

  cout << endl;

  }

  要记得在写代码的时分加以上using namespace std;,假设不加以的话在编译时会在运用cout与endl的行露示正告。

  libpqxx在字符串替换方面供微少量函数,最拥有意思的函数为from_string与to_string,第壹个函数条要壹个字符串参数和壹个 T& obj参数,T体即兴已存放在的内置典型,第二个函数条要壹个T& obj变量,函数将其替换为字符串。更多详细情节却以阅读相干文档。

  衔接,查询与事政处理

  本节的其他片断代码,读者最好运用using namespace pqxx;,鉴于却以在写代码时避免去写壹些数据典型,节去壹些不用要的劳动驾,如却以不用写pqxx::...。当今衔接壹个数据库,实行壹次事政处理,之后终止壹次查询,读者会看到代码与前文的C代码不太壹样。

  却以运用条包罗壹个参数的构造,如定义了衔接选项(数据库名、用户名等)的字符串。鉴于默许用户名为postgres,故此本例代码没拥有拥有包罗用户名:

    阅读此文的人还看了

    bwin官网注册-bwin官网开户|bwin体育官网 网站地图