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 函数.net_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将使用一个本地的 unix 域套接字进行通讯。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器