分享方式:


延遲的欄位

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

以下為延遲欄位:

  • 描述項記錄的 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 欄位。)

在將變數與欄位建立關聯的時間,以及驅動程式讀取或寫入變數的時間之間,應用程式不得解除配置或捨棄用於延遲欄位的變數。