GBase8s数据库打开 Collection 游标(ESQL/C)

您可声明集合变量上的 Select 和 Insert 游标。这些游标称为 Collection 游标。您必须使用 OPEN

语句来激活这些游标。

使用 OPEN 语句的 USING 子句中的集合变量的名称。要获取更多关于以集合变量使用 OPEN …

USING 的信息,请参阅 从集合游标访存 和 插入到 Collection 游标内。

USING 子句

当游标与一个包括问号(?)占位符和准备好的语句相关联时,需要 USING 子句,如下:

在其 WHERE 子句中带有输入参数的 SELECT 语句

带有输入参数作为其用户定义的函数的参数的 EXECUTE FUNCTION(或 EXECUTE

PROCEDURE)语句

在其 VALUES 子句中带有输入参数的 INSERT 语句(在 ESQL/C 中)。

在 SPL 例程中,您必须指定这些参数作为 SPL 变量。

在 ESQL/C 中,您可以下列方式之一支持这些参数的值:

您可指定一个或多个主变量。

您可指定系统描述符区域。

您可指定指向 sqlda 结构的指针。

要获取更多信息,请参阅 PREPARE 语句。

如果您知道在运行时要提供的参数的数目和顺序及其数据类型,则可在程序中通过该语句将所需参

数定义为主变量。通过以 USING 关键字打开游标,您按位置将参数传递给数据库服务器,后跟依

其序列顺序的变量的名称。从左至右,这些变量以一一对应的方式与 SELECT 或 EXECUTE

FUNCTION(或 EXECUTE PROCEDURE)语句问号(?)占位符相匹配。

在变量的列表中,您不可包括 ESQL/C 的指示符变量。要使用指示符变量,您必须包括 SELECT

或 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句文本作为 DECLARE 语句的一部

分,而不是准备好的语句的标识符。

您必须为每一占位符提供一个主变量名称。每一变量的数据类型必须与准备好的语句所需要的相应

的类型相兼容。下列 GBase 8s ESQL/C 代码片段打开 Select 游标并在 USING 子句中指定主变

量: sprintf (select_1, “%s %s %s %s %s”,“SELECT o.order_num, sum(total price)”,

“FROM orders o, items i”,

“WHERE o.order_date > ? AND o.customer_num = ?”,

“AND o.order_num = i.order_num”,

“GROUP BY o.order_num”);

EXEC SQL prepare statement_1 from :select_1;

EXEC SQL declare q_curs cursor for statement_1;

EXEC SQL open q_curs using 😮_date, 😮.customer_num;

下列示例展示在 GBase 8s ESQL/C 代码片段中,带有 EXECUTE FUNCTION 语句的 OPEN 语句

的 USING 子句:

stcopy (“EXECUTE FUNCTION one_func(?, ?)”, exfunc_stmt);

EXEC SQL prepare exfunc_id from :exfunc_stmt;

EXEC SQL declare func_curs cursor for exfunc_id;

EXEC SQL open func_curs using :arg1, :arg2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值