暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE分享;使用 ALLOCATE ROW 语句为 row 变量分配内存

GBASE数据库 2023-03-15
293

使用 ALLOCATE ROW 语句为 row 变量分配内存。该语句是 SQL ANSI/ISO 标准的扩展。在 ESQL/C 中使用此语句。


ALLOCATE ROW 语句为存储 row 类型数据的主变量分配内存。要创建 row 变量,ESQL/C 程序必须 执行以下操作:

1. 声明 row 变量。row 变量可以是已归类或未归类的 row 变量。 2. 使用 ALLOCATE ROW 语句为 row 变量分配内存。

以下示例显示如何使用 ALLOCATE ROW 语句为已归类的 row 变量 a_row 分配资源:

EXEC SQL BEGIN DECLARE SECTION; row (a int, b int) a_row; EXEC SQL END DECLARE SECTION; . . . EXEC SQL allocate row :a_row;

如果内存分配操作成功,则 ALLOCATE ROW 语句会将 SQLCODE (sqlca.sqlcode 的内容)置 零(0);如果分配失败,会将其设置为一个负的错误码。

您必须使用 DEALLOCATE ROW 语句显示地释放内存。一旦您使用 DEALLOCATE ROW 语句释放了该 row 变量,您就可以重新使用该 row 变量。

提示: ALLOCATE ROW 语句仅为 GBase 8s ESQL/C row 变量分配内存。要为 GBase 8s ESQL/C collection 变量分配内存,请使用 ALLOCATE COLLECTION 语句。 当您在多次函数调用中使用同一 row 变量而未对其解除分配时,会导致客户机计算机上的内存泄 露。因为没有办法确定指针在传递时是否是有效的,所以 GBase 8s ESQL/C 会假设它是无效的, 并将其分配到新的内存位置。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论