C && PGSQL Linux下PostgresQL数据库C语言接口(转载)

来源:互联网 发布:windows蓝天白云壁纸 编辑:程序博客网 时间:2024/05/01 14:20

转载请注明本文出处:leonidasFlames的blog,链接为:Linux下PostgresQL数据库C语言接口:libpq (一)

 

 

libpq 是 PostgreSQL的C语言应用程序的接口。libpq 是一套允许客户程序向PostgreSQL 后端服务进程发送查询 并且获得查询返回的库.libpq 同时也是其他几个 PostgreSQL 应用接口下面的引擎, 包括libpq++ (C++),libpgtcl(Tcl),Perl,和ecpg。

注意事项:

1. 在C语言程序中,需要包含头文件,并必须在编译时添加相应链接标记:-lpq

2. 在C++语言程序中,有两套头文件及其库函数,分别是早期的,两者库函数完全不同。其中为更早期的,网上示例较多。

 

一、libpq库下C语言程序对PostgreSQL数据的访问连接

 

1.首先看一个简单示例:

#include    #include   using namespace std;   /******************************************************************************/   int main(int argc, char** argv) {           const char*conninfo="hostaddr=127.0.0.1 user=Meme dbname=MyDatabasepassword=123";             PGconn* conn=PQconnectdb(conninfo);           if(PQstatus(conn)==CONNECTION_OK)       {           cout<<"连接PostgreSQL数据库 成功!"<


2. 与后端数据库服务器建立一个新的连接

PGconn *PQconnectdb(const char *conninfo) ;

从字符串conninfo传参以建立与Database的连接。字符串中可以包含如下信息

host 主机 hostaddr 主机IP地址 port 端口或套接字扩展文件名 dbname 数据库名 user 用户名 password 用户密码 option 调试选项

及connect_timeout,tty,sslmode,requiressl等其他不常用信息。

一般使用的是:

    const char* conninfo="hostaddr=127.0.0.1user=Meme dbname=MyDatabase password=123";


以上这几种必要信息。字符串写法大致为”关键字=数值 “形式,参照该示例即可。


3. PGconn *PQsetdbLogin(const char* pghost,const char* pgport,const char*pgoption,const char* pgtty,const char* dbname,const char* login,const char* pwd);

该函数是PGconnectdb()前身,功能上一致,区别在于固定个数的参数,具体可参照官方文档。由于PGconnectdb()在使用上更为灵活,首推使用PGconnectdb()。

 

4. 关闭连接

void PQfinish(PGconn* conn);

释放被PGconn对象使用的存储器,PGconn指针不可再使用

 

5. 返回连接状态。

ConnStatusType PQstatus(const PGconn* conn);

返回状态,最常用的是这两个:

CONNECTION_OK DB成功连接 CONNECTION_BADDB连接失败

通常,一个OK状态将保持到PQfinish(),但一个通讯失败可能导致状态过早地变为BAD。这时,程序可试用PQreset()恢复。

 

6. 重新连接 void PQreset(PGconn* conn);

 

7. 与数据库服务器建立一个非阻塞连接

PGconn* PQconnectStart(const char* conninfo);

PosgresPollingStatusType *PQconnectPoll(PGconn *conn);

你的应用执行线程在运行时不会阻塞远端I/O。你必须在调用PQconnectPoll()之前确保socket处于正确的状态。这两个函数都不会阻塞线程。

PostgreSQL libpq的数据库连接方面简单使用就是这些,参照上文示例,我们已经可以让C语言程序成功连接PostgreSQL数据库了,以后的文章将接着介绍libpq的其他函数,诸如数据库查询函数等等。

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(352) | 评论(0) | 转发(0) |
0

上一篇:Linux top和负载的解释(转载)

下一篇:PGSQL学习&&资料链接

相关热门文章
  • 使用JDBC连接SQL SERVER 2008...
  • SQL数据库还原时错误:操作系...
  • nike free runs Rpx Medical P...
  • Juif
  • Cheap foamposites Shoes kzwk
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~