天天看點

GBase8s資料庫ALLOCATE ROW 語句

使用 ALLOCATE ROW 語句為 row 變量配置設定記憶體。該語句是 SQL ANSI/ISO 标準的擴充。在

ESQL/C 中使用此語句。

文法

GBase8s資料庫ALLOCATE ROW 語句

元素 描述 限制 文法

variable 要配置設定的已歸類或未

歸類的 row 變量名稱

必須為未配置設定的 GBase 8s

ESQL/C row 類型主變量

特定于

語言

用法

ALLOCATE ROW 語句為存儲 row 類型資料的主變量配置設定記憶體。要建立 row 變量,ESQL/C 程式必須

執行以下操作:

聲明 row 變量。row 變量可以是已歸類或未歸類的 row 變量。

使用 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 會假設它是無效的,

并将其配置設定到新的記憶體位置