指派儲存體
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
應用程式可以在執行 SQL 語句之前或之後,為結果指派記憶體。 如果應用程式先準備或執行 SQL 語句,它可以先查詢結果集,再為結果指派記憶體。 例如,如果結果集未知,應用程式必須先擷取數據行數目,才能為其指派記憶體。
若要關聯數據行的記憶體,應用程式會呼叫 SQLBindCol 並傳遞它:
要轉換數據的數據類型。
數據的輸出緩衝區位址。
應用程式必須配置這個緩衝區,而且它必須夠大,才能將它轉換成的窗體中保存數據。
輸出緩衝區的長度。
如果傳回的數據在 C 中具有固定寬度,例如整數、實數或日期結構,則會忽略這個值。
要在其中傳回可用數據位元組數目的記憶體緩衝區位址。
應用程式也可以將結果集數據行系結至程式變數陣列,以支援在區塊中擷取結果集數據列。 陣列系結有兩種不同類型的:
當每個數據行系結系結至它自己的變數陣列時,就會完成數據行明智的系結。
藉由呼叫 SQLSetStmtAttr,並將 Attribute 設定為 SQL_ATTR_ROW_BIND_TYPE,而 ValuePtr 會設定為 SQL_BIND_BY_COLUMN 來指定數據行系結。 所有陣列都必須具有相同的元素數目。
當 SQL 語句中的所有參數都系結為單位系結至包含參數個別變數的結構陣列時,就會完成數據列式系結。
藉由呼叫 SQLSetStmtAttr,並將 Attribute 設定為 SQL_ATTR_ROW_BIND_TYPE,而 ValuePtr 會設定為包含接收結果集數據行之變數的結構大小來指定數據列。
應用程式也會將SQL_ATTR_ROW_ARRAY_SIZE設定為數據行或數據列陣列中的元素數目,並設定SQL_ATTR_ROW_STATUS_PTR和SQL_ATTR_ROWS_FETCHED_PTR。