返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

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 示例。

执行后将使在GBase 服务器上定义一系列预处理语句生效。

语法
[Visual Basic]
Public Overrides Sub Prepare
[C#]
public override void Prepare()

实现
IDbCommand.Prepare()

示例
下面的例子创建了一个函数,函数内显示了Prepare 的用法。
[Visual Basic]
public sub PrepareExample()
Dim cmd as New GBaseCommand("INSERT INTO gstable VALUES" _ &"
(?val)", gsConnection)
cmd.Parameters.Add( "?val", 10 )
cmd.Prepare()
cmd.ExecuteNonQuery()
cmd.Parameters(0).Value = 20
cmd.ExecuteNonQuery()
end sub

[C#]
private void PrepareExample()
{
GBaseCommand
cmd
=
new
GBaseCommand("INSERT
INTO
gstable
VALUES
(?val)", gsConnection);
cmd.Parameters.Add( "?val", 10 );

GBase 8a 程序员手册ADO.NET 篇


- 146 -

南大通用数据技术股份有限公司
cmd.Prepare();
cmd.ExecuteNonQuery();
cmd.Parameters[0].Value = 20;
cmd.ExecuteNonQuery();
}

语法
SELECT * FROM information_schema.processlist WHERE resource_pool_name =’
pool_name’ AND vc=’vc_name’;
可以加如下辅助查询条件,如:
running_time = 0; //等待任务
示例
gbase> SELECT * FROM information_schema.processlist\G
*************************** 1. row ***************************
ID: 524
TASKID: 0
SUBTASKID: 0
THREADID: 27957
USER: root
HOST: 192.168.6.154:27779
VC: vcname000001
DB: NULL
COMMAND: Sleep
START_TIME: 2018-07-06 14:39:43
TIME: 612
STATE:
RESOURCE_POOL_NAME: NULL
RESOURCE_POOL_ID: NULL
RESOURCE_POOl_PRIORITY: NULL
WAITING_TIME: NULL
RUNNING_TIME: NULL
LOCK: NULL
WAIT: NULL
INFO: NULL
TRACE: NULL

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
498