資料緩衝區類型
緩衝區的 C 資料類型由應用程式指定。 對於單一變數,這會在應用程式配置變數時發生。 對於通用記憶體 (即類型為 void 的指標指向其中的記憶體),這會在應用程式將記憶體強制轉換為特定類型時發生。 驅動程式會以兩種方式來探索此類型:
資料緩衝區類型引數。 用來傳送參數值和結果集資料的緩衝區 (例如在 SQLBindCol 中與 TargetValuePtr 繫結的緩衝區) 通常具有相關聯的類型引數 (例如SQLBindCol 中的 TargetType 引數)。 在此引數中,應用程式會傳遞對應於緩衝區類型的 C 類型識別碼。 例如,在下列對 SQLBindCol 的呼叫中,SQL_C_TYPE_DATE 值會告知驅動程式 Date 緩衝區是 SQL_DATE_STRUCT:
SQL_DATE_STRUCT Date; SQLINTEGER DateInd; SQLBindCol(hstmt, 1, SQL_C_TYPE_DATE, &Date, 0, &DateInd);
如需類型識別碼的相關詳細資訊,請參閱本節後面的 ODBC 中的資料類型一節。
預先定義的類型。 用來傳送及擷取選項或屬性的緩衝區 (例如 SQLGetInfo 中的 InfoValuePtr 引數指向其中的緩衝區) 具有取決於指定選項的固定類型。 驅動程式會假設資料緩衝區屬於此類型;應用程式必須負責配置此類型的緩衝區。 例如,在下列對 SQLGetInfo 的呼叫中,驅動程式會假設緩衝區是 32 位元的整數,因為這是 SQL_STRING_FUNCTIONS 選項所需的值:
SQLUINTEGER StringFuncs; SQLGetInfo(hdbc, SQL_STRING_FUNCTIONS, (SQLPOINTER) &StringFuncs, 0, NULL);
驅動程式會使用 C 資料類型來解譯緩衝區中的資料。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應