十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“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#include 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#include 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数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。