PostgreSQL数据库学习手册之libpq.docx

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PostgreSQL数据库学习手册之libpq

PostgreSQL数据库学习手册之libpq - C 库--介绍(转)[@more@]Chapter 1. libpq - C 库Table of Contents1.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.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 应用的例子:src/test/examplessrc/bin/psql使用 libpq 的前端程序必须包括头文件 libpq-fe.h 并且必须与 libpq 库链接.PostgreSQL数据库学习手册之libpq-C库数据库联接函数(转)[@more@]1.2. 数据库联接函数下面的过程处理与 PostgreSQL 后端服务器联接的事情. 一个应用程序一次可以与多个后端建立联接. (这么做的原因之一是访问多于一个数据库.) 每个连接都是用一个从PQconnectdb()或 PQsetdbLogin() 获得的PGconn对象表示. 注意,这些函数总是返回一个非空的对象指针, 除非存储器少得连个PGconn对象都分配不出来. 在把查询发送给联接对象之前,可以调用PQstatus 函数来检查一下联接是否成功.*PQconnectdb 与后端数据库服务器建立一个新的联接.PGconn *PQconnectdb(const char *conninfo)这个过程用从一个字符串 conninfo 来的参数与数据库打开一个新的联接. 与下面的PQsetdbLogin()不同的是, 我们可以不必更换函数签名(名字)就可以扩展参数集, 所以我们建议应用程序中使用这个函数或者是它的非阻塞的相似函数 PQconnectStart 和 PQconnectPoll. 传入的参数可以为空,表明使用所有缺省的参数, 或者可以包含一个或更多个用空白间隔的参数设置.每个参数以 关键字 = 数值的形式设置. (要写一个空值或者一个包含空白的值, 你可以用一对单引号包围它们,例如, keyword = a value . 数值内部的单引号和反斜扛必须用一个反斜扛逃逸, 也就是说, 或.) 等号周围的空白是可选的.目前可识别的参数键字是:host要联接的主机(host ). 如果主机名以斜扛开头, 则它声明使用 Unix 域套接字通讯而不是 TCP/IP 通讯; 该值就是套接字文件所存储的目录. 缺省时是与位于 /tmp 里面的 Unix-域套接字联接. hostaddr与之联接的主机的 IP 地址。这个可以是标准的数字-点的形式, 象在 BSD 函数inet_aton等里面用的那样。 如果声明了一个非零长的字符串,那么使用 TCP/IP 通讯机制。使用hostaddr取代 host 可以让应用避免一次主机名查找, 这一点对于那些有时间约束的应用来说可能是非常重要的。 不过,Kerberos 认证系统要求主机(host)名。因此,应用下面的规则。 如果声明了不带hostaddr的 host 那么就强制进行主机名查找。 如果声明中没有 host,hostaddr 的值给出远端的地址; 如果使用了 Kerberos, 将导致一次反向名字查询。如果同时声明了 host 和hostaddr, 除非使用了 Kerberos,否则将使用hostaddr的值作为远端地址; host 的值将被忽略,如果使用了 Kerberos,host 的值用于 Kerberos 认证。 要注意如果传递给libpq的主机名(host) 不是地址hostaddr处的机器名,那么认证很有可能失败。如果主机名(host)和主机地址都没有, 那么libpq将使用一个本地的 U

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档