PQprepare
功能描述
用给定的参数提交请求,创建一个预备语句,然后等待结束。
原型
PGresult *PQprepare(PGconn *conn,
const char *stmtName,
const char *query,
int nParams,
const Oid *paramTypes);
参数
表8-52 PQprepare 参数
关键字
参数说明
conn
指向包含链接的对象指针。
stmtName
需要执行的stmt 名称。
query
需要执行的查询字符串。
nParams
参数个数。
paramTypes
声明参数类型的数组。
返回值
PGresult:包含查询结果的对象指针。
注意事项
PQprepare 创建一个为PQexecPrepared 执行用的预备语句,
本特性支持命令的重复执行,
不需要每次都进行解析和规划。PQprepare 仅在协议3.0 及以后的连接中支持,使用协
议2.0 时,PQprepare 将失败。
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
292
该函数从查询字符串创建一个名为stmtName 的预备语句,该查询字符串必须包含一
个SQL 命令。stmtName 可以是""来创建一个未命名的语句,在这种情况下,任何预
先存在的未命名的语句都将被自动替换;
否则,
如果在当前会话中已经定义了语句名称,
则这是一个错误。如果使用了任何参数,那么在查询中将它们称为$1,$2 等。nParams
是在paramTypes[]数组中预先指定类型的参数的数量。(当nParams 为0 时,数组指针
可以为NULL)paramTypes[]通过OID 指定要分配给参数符号的数据类型。如果
paramTypes 为NULL ,或者数组中的任何特定元素为零,服务器将按照对非类型化字
面字符串的相同方式为参数符号分配数据类型。另外,查询可以使用数字高于nParams
的参数符号;还将推断这些符号的数据类型。
通过执行SQLPREPARE 语句,
还可以创建与PQexecPrepared 一起使用的预备语句。
此外,虽然没有用于删除预备语句的libpq 函数,但是SQL DEALLOCATE 语句可用于
此目的。
示例
参见6.4.3 示例。