这篇文章主要介绍“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
代码段显示如何连接到端口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数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。