延遲欄位

延遲 欄位 的值在設定時不會被使用,但驅動程式會儲存變數的位址以實現延遲效果。 對於應用程式參數描述符,驅動程式會使用呼叫 SQLExecDirectSQLExecute 時變數的內容。 對於應用程式列描述符,驅動程式會使用擷取時變數的內容。

以下是延遲欄位:

  • 描述符記錄的 SQL_DESC_DATA_PTR 和 SQL_DESC_INDICATOR_PTR 欄位。

  • 應用程式描述符記錄的 SQL_DESC_OCTET_LENGTH_PTR 欄位。

  • 在多列擷取的情況下,描述符標頭的SQL_DESC_ARRAY_STATUS_PTR和SQL_DESC_ROWS_PROCESSED_PTR欄位。

當描述符被分配時,每個描述符記錄的延遲欄位初始值為空值。 零值的意義如下:

  • 若 SQL_DESC_ARRAY_STATUS_PTR 為空值,多列擷取將無法回傳每列診斷資訊的此部分。

  • 若SQL_DESC_DATA_PTR為空值,則該記錄為未綁定。

  • 若 ARD 的 SQL_DESC_OCTET_LENGTH_PTR 欄位為空值,驅動程式不會回傳該欄位的長度資訊。

  • 若 APD 的SQL_DESC_OCTET_LENGTH_PTR欄位為空值且參數為字串,驅動程式假設該字串為 null 終止。 對於輸出動態參數,此欄位的空值會阻止驅動程式回傳長度資訊。 (如果SQL_DESC_TYPE欄位不表示字串參數,則忽略SQL_DESC_OCTET_LENGTH_PTR欄位。)

應用程式在將變數與延遲欄位關聯後,且驅動程式讀取或寫入之前,不得解除配置或丟棄這些變數。