SQLBindParameter
SQLBindParameter
當用來為SQL Server Native Client ODBC 驅動程式提供資料時,可能會消除資料轉換的負擔,進而大幅提升應用程式的用戶端和伺服器元件效能。 其他優點包括插入或更新近似的數值資料類型時,降低有效位數的損失。
注意
將 char
和 wchar
類型資料插入 image 資料行時,會使用傳入之資料的大小,而非轉換為二進位格式後的資料大小。
如果SQL Server Native Client ODBC 驅動程式在參數陣列的單一陣列元素上遇到錯誤,則驅動程式會繼續執行其餘陣列元素的 語句。 如果應用程式已經繫結陳述式的參數狀態元素陣列,可以從陣列判斷產生錯誤的參數資料列。
使用 SQL Server Native Client ODBC 驅動程式時,請在系結輸入參數時指定SQL_PARAM_INPUT。 繫結使用 OUTPUT 關鍵字定義的預存程序參數時,只會指定 SQL_PARAM_OUTPUT 或 SQL_PARAM_INPUT_OUTPUT。
如果系結參數陣列的陣列元素在語句執行中發生錯誤,則SQLRowCount與 SQL Server Native Client ODBC 驅動程式不可靠。 ODBC 陳述式屬性 SQL_ATTR_PARAMS_PROCESSED_PTR 會報告錯誤發生前處理的資料列數目。 接著,如果需要,此應用程式可以周遊其參數狀態陣列以探索成功執行的陳述式數目。
SQL 字元類型的繫結參數
如果傳入的 SQL 資料類型是字元類型, ColumnSize 是字元大小, (不是位元組) 。 如果以位元組為單位的資料字串長度大於 8000, 則 ColumnSize 應該設定 SQL_SS_LENGTH_UNLIMITED
為 ,表示 SQL 類型的大小沒有限制。
例如,如果 SQL 資料類型為 SQL_WVARCHAR
, ColumnSize 不應大於 4000。 如果實際資料長度大於 4000,則 ColumnSize 應該設定為 SQL_SS_LENGTH_UNLIMITED
, nvarchar(max)
以便驅動程式使用。
SQLBindParameter 和資料表值參數
如同其他參數類型,資料表值參數會系結 SQLBindParameter。
繫結資料表值參數之後,也會一併繫結其資料行。 若要系結資料行,您可以呼叫 SQLSetStmtAttr ,將SQL_SOPT_SS_PARAM_FOCUS設定為數據表值參數的序數。 然後,針對資料表值參數中的每個資料行呼叫 SQLBindParameter。 若要傳回到最上層參數繫結,將 SQL_SOPT_SS_PARAM_FOCUS 設定為 0。
如需將參數對應至資料表值參數描述元欄位的相關資訊,請參閱 系結和資料傳輸Table-Valued參數和資料行值。
如需資料表值參數的詳細資訊,請參閱 資料表值參數 (ODBC) 。
SQLBindParameter 對增強型日期和時間功能的支援
日期/時間類型的參數值會轉換,如 從 C 轉換為 SQL中所述。 請注意,和 類型的 time
datetimeoffset
參數必須指定為 SQL_C_DEFAULT
ValueType,或者 SQL_C_BINARY
是否使用其對應的結構 (SQL_SS_TIME2_STRUCT
和 SQL_SS_TIMESTAMPOFFSET_STRUCT
) 。
如需詳細資訊,請參閱 ODBC) (日期和時間改善 。
大型 CLR UDT 的 SQLBindParameter 支援
SQLBindParameter
支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 ODBC) (大型 CLR User-Defined 類型 。