延遲的欄位
延遲欄位的值不會於設定時使用,但驅動程式會儲存變數的位址以實現延遲效果。 針對應用程式參數描述項,驅動程式會在呼叫 SQLExecDirect 或 SQLExecute時使用變數的內容。 針對應用程式資料列描述項,驅動程式會在擷取時使用變數的內容。
以下為延遲欄位:
描述項記錄的 SQL_DESC_DATA_PTR 和 SQL_DESC_INDICATOR_PTR 欄位。
應用程式描述項記錄的 SQL_DESC_OCTET_LENGTH_PTR 欄位。
在多重資料列擷取的情況下,描述項標頭的 SQL_DESC_ARRAY_STATUS_PTR 和 SQL_DESC_ROWS_PROCESSED_PTR 欄位。
在配置描述項時,各個描述項記錄的延遲欄位一開始都有 null 值。 null 值的意義如下:
如果 SQL_DESC_ARRAY_STATUS_PTR 有 null 值,則多重資料列擷取無法傳回每個資料列診斷資訊的該元件。
如果 SQL_DESC_DATA_PTR 有 null 值,則為未繫結記錄。
如果 ARD 的 SQL_DESC_OCTET_LENGTH_PTR 欄位有 null 值,則驅動程式不會傳回該資料行的長度資訊。
如果 APD 的 SQL_DESC_OCTET_LENGTH_PTR 欄位有 null 值,且參數為字元字串,則驅動程式會假設以 null 終止的字串。 針對輸出動態參數,此欄位中的 null 值可防止驅動程式傳回長度資訊。 (如果 SQL_DESC_TYPE 欄位未指出字元字串參數,則會忽略 SQL_DESC_OCTET_LENGTH_PTR 欄位。)
在將變數與欄位建立關聯的時間,以及驅動程式讀取或寫入變數的時間之間,應用程式不得解除配置或捨棄用於延遲欄位的變數。