使用 ALLOCATE ROW 語句為 row 變量配置設定記憶體。該語句是 SQL ANSI/ISO 标準的擴充。在
ESQL/C 中使用此語句。
文法
元素 描述 限制 文法
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 會假設它是無效的,
并将其配置設定到新的記憶體位置