温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++如何连接PostgreSQL数据库

发布时间:2022-03-28 10:03:25 来源:亿速云 阅读:809 作者:iii 栏目:大数据

这篇文章主要介绍“C++如何连接PostgreSQL数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何连接PostgreSQL数据库”文章能帮助大家解决问题。

安装

最新版本的libpqxx可从链接下载:Libpqxx下载。 所以下载最新版本,并按照以下步骤:

wget http://pqxx.org/download/software/libpqxx/libpqxx-4.0.tar.gz
tar xvfz libpqxx-4.0.tar.gz
cd libpqxx-4.0
./configure
make
make install

Shell

在开始使用C/C++的PostgreSQL接口之前,请在PostgreSQL安装目录中找到pg_hba.conf文件,并添加以下行:

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5

Shell

可以启动/重新启动postgres服务器,使用以下命令运行:

[root@host]# service postgresql restart
Stopping postgresql service:                               [  OK  ]
Starting postgresql service:                               [  OK  ]

Shell

C/C++连接到PostgreSQL数据库

以下C代码段显示如何连接到端口5432上本地机器上运行的现有数据库。在这里,我使用反斜杠\行继续。

#include <iostream>#include <pqxx/pqxx> using namespace std;using namespace pqxx;int main(int argc, char* argv[]){
   try{  connection C("dbname=testdb user=postgres password=cohondob \
      hostaddr=127.0.0.1 port=5432");  if (C.is_open()) { cout << "Opened database successfully: " << C.dbname() << endl;  } else { cout << "Can't open database" << endl; return 1;  }  C.disconnect ();
   }catch (const std::exception &e){  cerr << e.what() << std::endl;  return 1;
   }}

C

现在,我们编译并运行上面的程序来连接到数据库testdb,它已经在你的架构中可用,可以使用用户postgres和密码为:pass123进行访问。 您可以根据数据库设置使用用户名和密码。记住保持-lpqxx-lpq在给定的顺序! 否则,链接器将抱怨关于缺少以“PQ”开头的名称的函数。

$g++ test.cpp -lpqxx -lpq
$./a.out
Opened database successfully: testdb

Shell

创建表

以下C代码段将用于在之前创建的数据库(testdb)中创建一个表:

#include <iostream>#include <pqxx/pqxx> using namespace std;using namespace pqxx;int main(int argc, char* argv[]){
   char * sql;

   try{  connection C("dbname=testdb user=postgres password=cohondob \
      hostaddr=127.0.0.1 port=5432");  if (C.is_open()) { cout << "Opened database successfully: " << C.dbname() << endl;  } else { cout << "Can't open database" << endl; return 1;  }  /* Create SQL statement */  sql = "CREATE TABLE COMPANY("  \      "ID INT PRIMARY KEY     NOT NULL," \      "NAME           TEXT    NOT NULL," \      "AGE            INT     NOT NULL," \      "ADDRESS        CHAR(50)," \      "SALARY         REAL );";  /* Create a transactional object. */  work W(C);  /* Execute SQL query */  W.exec( sql );  W.commit();  cout << "Table created successfully" << endl;  C.disconnect ();
   }catch (const std::exception &e){  cerr << e.what() << std::endl;  return 1;
   }

   return 0;}

关于“C++如何连接PostgreSQL数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI