# libpq 库模块帮助文档

## libpq 成员列表 <a id="libpq" href="#libpq">&#x23;</a>

### libpq( 连接参数 ) <a id="libpq( 连接参数 )" href="#libpq( 连接参数 )">&#x23;</a>
打开数据库连接,  
连接参数可以是字符串，也可以是指定任意个配置参数的表,  
常用的配置字段如下：  
libpq(  
	host ="连接主机,不指定时默认localhost";   
	hostaddr ="连接主机的IP地址,可省略" ;  
	port = "服务端口,不指定默认值为5432";   
	dbname = "数据库名,不指定时默认和用户名相同";   
	user = "不指定时默认值为postgres";  
	password = "密码";  
	connect_timeout = "超时值,0为不限时间";  
	options = "发送给服务器的命令行选项"   
	sslmode = "SSL模式,4个可选值：disable,allow,prefer （缺省）,require "  
)

### libpq() <a id="libpq()" href="#libpq()">&#x23;</a>
[返回对象:libpqObject](#libpqObject)

## libpqObject 成员列表 <a id="libpqObject" href="#libpqObject">&#x23;</a>

### libpqObject.backendPid() <a id="libpqObject.backendPid" href="#libpqObject.backendPid">&#x23;</a>
服务器的进程号ID;

### libpqObject.charset() <a id="libpqObject.charset" href="#libpqObject.charset">&#x23;</a>
服务端编码

### libpqObject.close() <a id="libpqObject.close" href="#libpqObject.close">&#x23;</a>
关闭连接  
在对象析构时会自动调用此函数

### libpqObject.each() <a id="libpqObject.each" href="#libpqObject.each">&#x23;</a>
执行SQL并返回一个遍历查询结果的迭代器  
如果参数@2是一个表,则调用formatSqlParameters格式化,SQL中的以数名以@字符开始  
如果是其他类型的参数,调用string.format格式化

### libpqObject.errorMessage() <a id="libpqObject.errorMessage" href="#libpqObject.errorMessage">&#x23;</a>
返回错误信息

### libpqObject.escapeString() <a id="libpqObject.escapeString" href="#libpqObject.escapeString">&#x23;</a>
转义参数指定的字符串

### libpqObject.exec() <a id="libpqObject.exec" href="#libpqObject.exec">&#x23;</a>
执行SQL,并可添加不定个数的参数  
如果参数@2是一个表,则调用formatSqlParameters格式化,SQL中的以数名以@字符开始  
如果是其他类型的参数,调用string.format格式化  
如果失败返回null,错误信息  

如果成功并且执行的是返回数据的命令，返回libpq.pqresult对象  
否则返回状态码

[返回对象:libpqresultObject](#libpqresultObject)

### libpqObject.execParams() <a id="libpqObject.execParams" href="#libpqObject.execParams">&#x23;</a>
执行SQL,并可添加不定个数的参数  
SQL中用 $1，$2 等引用后面的参数  

如果失败返回null,错误信息  
如果成功并且执行的是返回数据的命令，返回libpq.pqresult对象  
否则返回状态码

[返回对象:libpqresultObject](#libpqresultObject)

### libpqObject.formatSqlParameters() <a id="libpqObject.formatSqlParameters" href="#libpqObject.formatSqlParameters">&#x23;</a>
格式化SQL  
如果参数@2是一个表,则调用formatSqlParameters格式化,SQL中的以数名以@字符开始  
如果是其他类型的参数,调用string.format格式化

### libpqObject.getCopyData() <a id="libpqObject.getCopyData" href="#libpqObject.getCopyData">&#x23;</a>
接收数据  
成功返回buffer对象,失败返回null,错误信息

### libpqObject.getTable() <a id="libpqObject.getTable" href="#libpqObject.getTable">&#x23;</a>
执行SQL并返回一个包含查询结果的表  
如果参数@2是一个表,则调用formatSqlParameters格式化,SQL中的以数名以@字符开始  
如果是其他类型的参数,调用string.format格式化

### libpqObject.parameterStatus("字符串参数") <a id="libpqObject.parameterStatus" href="#libpqObject.parameterStatus">&#x23;</a>
返回服务器参数设置

### libpqObject.putCopyData(buffer,err) <a id="libpqObject.putCopyData" href="#libpqObject.putCopyData">&#x23;</a>
发送数据  
buffer参数为null结束发送,指定err参数返回错误信息并结束发送

### libpqObject.resultFormat <a id="libpqObject.resultFormat" href="#libpqObject.resultFormat">&#x23;</a>
其值为0或空值时execParams返回数据使用文本模式，  
值为1使用二进制模式

## libpqresultObject 成员列表 <a id="libpqresultObject" href="#libpqresultObject">&#x23;</a>

### libpqresultObject.clear() <a id="libpqresultObject.clear" href="#libpqresultObject.clear">&#x23;</a>
释放资源  
在对象析构时会自动调用此函数

### libpqresultObject.each() <a id="libpqresultObject.each" href="#libpqresultObject.each">&#x23;</a>
返回一个遍历查询结果的迭代器

### libpqresultObject.fname(列序号) <a id="libpqresultObject.fname" href="#libpqresultObject.fname">&#x23;</a>
字段名

### libpqresultObject.fnumber(字段名) <a id="libpqresultObject.fnumber" href="#libpqresultObject.fnumber">&#x23;</a>
字段名转换为列序号

### libpqresultObject.ftable(列序号) <a id="libpqresultObject.ftable" href="#libpqresultObject.ftable">&#x23;</a>
字段所在的表的 OID

### libpqresultObject.ftext(列序号) <a id="libpqresultObject.ftext" href="#libpqresultObject.ftext">&#x23;</a>
列是否以文本模式返回数据

### libpqresultObject.ftype(列序号) <a id="libpqresultObject.ftype" href="#libpqresultObject.ftype">&#x23;</a>
返回列类型

### libpqresultObject.getTable() <a id="libpqresultObject.getTable" href="#libpqresultObject.getTable">&#x23;</a>
返回一个包含查询结果的表

### libpqresultObject.nfields() <a id="libpqresultObject.nfields" href="#libpqresultObject.nfields">&#x23;</a>
返回列数

### libpqresultObject.ntuples() <a id="libpqresultObject.ntuples" href="#libpqresultObject.ntuples">&#x23;</a>
返回行数

### libpqresultObject.value(行序号,列序号) <a id="libpqresultObject.value" href="#libpqresultObject.value">&#x23;</a>
返回值
