使用 ALLOCATE ROW 语句为 row 变量分配内存。该语句是 SQL ANSI/ISO 标准的扩展。在 ESQL/C 中使用此语句。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
variable | 要分配的已归类或未归类的 row 变量名称 | 必须为未分配的 GBase 8s ESQL/C 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);如果分配失败,会将其设置为一个负的错误码。
当您在多次函数调用中使用同一 row 变量而未对其解除分配时,会导致客户机计算机上的内存泄露。因为没有办法确定指针在传递时是否是有效的,所以 GBase 8s ESQL/C 会假设它是无效的,并将其分配到新的内存位置。