温馨提示×

温馨提示×

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

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

C++如何连接PostgreSQL数据库

发布时间:2022-03-28 10:03:25 来源:亿速云 阅读:906 作者: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