欢迎来到天天文库
浏览记录
ID:40489753
大小:84.41 KB
页数:70页
时间:2019-08-03
《PostgreSQL数据库学习手册之libpq》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PostgreSQL数据库学习手册之libpq-C库--介绍(转)[@more@]Chapter1.libpq-C库TableofContents1.1.介绍1.2.数据库联接函数1.3.命令执行函数1.3.1.主过程1.3.2.为包含在SQL查询中逃逸字串1.3.3.逃逸包含在SQL查询中的二进制字串1.3.4.检索SELECT的结果信息1.3.5.检索SELECT结果数值1.3.6.检索非-SELECT结果信息1.4.异步查询处理1.5.捷径接口1.6.异步通知1.7.与COPY命令相关的函数1.8.libpq跟踪函数1.9.libpq控制函数1
2、.10.环境变量1.11.文件1.12.线程特性1.13.制作Libpq程序1.14.例子程序1.1.介绍libpq是PostgreSQL的C应用程序员的接口.libpq是一套允许客户程序向PostgreSQL后端服务进程发送查询并且获得查询返回的库过程.libpq同时也是其他几个PostgreSQL应用接口下面的引擎,包括libpq++(C++),libpgtcl(Tcl),Perl,和ecpg.所以如果你使用这些软件包,libpq某些方面的特性会对你非常重要.本节末尾有三个小程序显示如何利用libpq书写程序.在下面目录里面有几个完整的libpq
3、应用的例子:src/test/examplessrc/bin/psql使用libpq的前端程序必须包括头文件libpq-fe.h并且必须与libpq库链接.PostgreSQL数据库学习手册之libpq-C库---数据库联接函数(转)[@more@]1.2.数据库联接函数下面的过程处理与PostgreSQL后端服务器联接的事情.一个应用程序一次可以与多个后端建立联接.(这么做的原因之一是访问多于一个数据库.)每个连接都是用一个从PQconnectdb()或PQsetdbLogin()获得的PGconn对象表示.注意,这些函数总是返回一个非空的对象指针
4、,除非存储器少得连个PGconn对象都分配不出来.在把查询发送给联接对象之前,可以调用PQstatus函数来检查一下联接是否成功.*PQconnectdb与后端数据库服务器建立一个新的联接.PGconn*PQconnectdb(constchar*conninfo)这个过程用从一个字符串conninfo来的参数与数据库打开一个新的联接.与下面的PQsetdbLogin()不同的是,我们可以不必更换函数签名(名字)就可以扩展参数集,所以我们建议应用程序中使用这个函数或者是它的非阻塞的相似函数PQconnectStart和PQconnectPoll.传入
5、的参数可以为空,表明使用所有缺省的参数,或者可以包含一个或更多个用空白间隔的参数设置.每个参数以关键字=数值的形式设置.(要写一个空值或者一个包含空白的值,你可以用一对单引号包围它们,例如,keyword='avalue'.数值内部的单引号和反斜扛必须用一个反斜扛逃逸,也就是说,'或.)等号周围的空白是可选的.目前可识别的参数键字是:host要联接的主机(host).如果主机名以斜扛开头,则它声明使用Unix域套接字通讯而不是TCP/IP通讯;该值就是套接字文件所存储的目录.缺省时是与位于/tmp里面的Unix-域套接字联接.hostaddr与之联接
6、的主机的IP地址。这个可以是标准的数字-点的形式,象在BSD函数inet_aton等里面用的那样。如果声明了一个非零长的字符串,那么使用TCP/IP通讯机制。使用hostaddr取代host可以让应用避免一次主机名查找,这一点对于那些有时间约束的应用来说可能是非常重要的。不过,Kerberos认证系统要求主机(host)名。因此,应用下面的规则。如果声明了不带hostaddr的host那么就强制进行主机名查找。如果声明中没有host,hostaddr的值给出远端的地址;如果使用了Kerberos,将导致一次反向名字查询。如果同时声明了host和hos
7、taddr,除非使用了Kerberos,否则将使用hostaddr的值作为远端地址;host的值将被忽略,如果使用了Kerberos,host的值用于Kerberos认证。要注意如果传递给libpq的主机名(host)不是地址hostaddr处的机器名,那么认证很有可能失败。如果主机名(host)和主机地址都没有,那么libpq将使用一个本地的Unix域套接字进行通讯。port主机服务器的端口号,或者在Unix域套接字联接时的套接字扩展文件名.dbname数据库名.user要联接的用户名。password如果后端要求口令认证,所用的口令.connec
8、t_timeout给连接过程设置的时间范围,以秒计。零或者不设置表示无穷。options发给后端的跟踪/调试
此文档下载收益归作者所有