C++连接postgresql数据库

9 篇文章 0 订阅
6 篇文章 0 订阅

一、前言

本教程是所有运行环境均在Centos7.2下实现,使用前先确定PostgreSQL数据库安装成功,一定要确保安装路径/usr/pgsql-10下面有bin、include、lib、doc、share文件夹(路径可能不一样,但前三个文件夹一定要有,很关键),如何include没有可以下载源码拷贝过来,但最好是安装好就有。本教程中使用libpqxx库来实现C++和pgsql数据库的连接,libpqxx是postgresql的官方C++客户端API,下载地址:http://pqxx.org/download/software/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

如果编译不成功可能原因:

1、需要安装依赖,这个一定得有

yum install postgresql-devel

2、前面安装缺少include文件夹

3、查看错误,根据需要进行安装调试

三、代码测试C++连接pgsql数据库

#include <iostream>
#include <pqxx/pqxx> 

using namespace std;
using namespace pqxx;

int main(int argc, char* argv[])
{
   try{
      connection db("dbname=traindata user=postgres password=123456 hostaddr=127.0.0.1 port=5432");
      if (db.is_open()) {
         cout << "Opened database successfully: " << db.dbname() << endl;
      } else {
         cout << "Can't open database" << endl;
         return 1;
      }
      db.disconnect ();
   }catch (const std::exception &e){
      cerr << e.what() << std::endl;
      return 1;
   }
}

说明:dbname数据库名称,user用户名,password密码,hostaddr为地址,port为端口号,这些一定要根据自己的数据库进行设置。完成后就可以编译上面代码来连接数据库了,记住保持-lpqxx和-lpq给定的顺序。(这里我的工程名为myapp.cpp)

$g++ myapp.cpp -lpqxx -lpq
$./a.out
Opened database successfully: traindata

现在已经成功通过C++代码连接到postgresql数据库了!

结束语:开始本意是想在QT中连接到pgsql数据库,然后进行访问,但Centos7下QT的pgsql驱动没编译好,就采用此方法通过C++进行连接数据库。用C++连接成功后,如若想在QT中使用,只需在.pro文件中添加下面代码即可:

LIBS+=-lpqxx -lpq




  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL C自动连接是一个功能,它允许在C程序中自动连接PostgreSQL数据库。这种功能对于需要在C程序中进行数据库操作的开发人员来说非常有用。 使用PostgreSQL C自动连接功能可以减少在连接数据库时的代码量,并且简化了连接过程。通常,连接数据库需要编写一些连接代码,包括指定数据库地址、端口、用户名和密码等信息。而使用PostgreSQL C自动连接功能,开发人员只需要编写少量的连接代码,其余部分由自动连接功能完成。 在使用PostgreSQL C自动连接功能之前,我们需要安装postgresql-client包和libpq-dev库。然后,我们可以在C程序中使用libpq库中提供的函数进行数据库连接。这些函数包括PQconnectdb(),它会根据给定的连接字符串自动连接PostgreSQL数据库,并返回一个连接对象。 在使用PQconnectdb()函数时,我们需要在连接字符串中指定数据库的地址、端口、用户名和密码等信息。例如,连接字符串可以是"host=localhost port=5432 dbname=mydb user=myuser password=mypassword"。当连接成功时,我们可以使用PQexec()函数执行SQL查询,并使用PQgetResult()函数获取查询结果。 除了自动连接功能,libpq库还提供了其他有用的数据库操作函数,例如执行事务、执行预处理语句等。开发人员可以根据自己的需求选择适合的函数进行数据库操作。 总而言之,PostgreSQL C自动连接是一个方便的功能,它可以简化C程序中的数据库连接过程,并减少代码量。开发人员可以使用libpq库中提供的函数进行数据库操作,从而实现对PostgreSQL数据库的各种操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值