SQLBindParameter 當用來為 SQL Server Native Client ODBC 驅動程式提供數據時,可以消除數據轉換的負擔,進而大幅提升應用程式的用戶端和伺服器元件效能。 其他優點包括插入或更新近似數值數據類型時,降低精確度損失。
備註
在影像數據行中 char 插入和 wchar 輸入數據時,會使用傳入的數據大小,而不是轉換成二進位格式之後的數據大小。
如果 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 和 Table-Valued 參數
與其他參數類型一樣,數據表值參數會由 SQLBindParameter 系結。
系結數據表值參數之後,其數據行也會系結。 若要系結數據行,您可以呼叫 SQLSetStmtAttr ,將SQL_SOPT_SS_PARAM_FOCUS設定為數據表值參數的序數。 然後,針對數據表值參數中的每個數據行呼叫 SQLBindParameter。 若要返回最上層參數係結,請將SQL_SOPT_SS_PARAM_FOCUS設為 0。
如需將參數對應至數據表值參數之描述元欄位的相關信息,請參閱 系結和數據傳輸 Table-Valued 參數和數據行值。
如需資料表值參數的詳細資訊,請參閱 資料表值參數 (ODBC) 。
增強日期和時間功能的 SQLBindParameter 支援
日期/時間類型的參數值會依從 C 轉換成 SQL 中所述進行轉換。 請注意,和 datetimeoffset 型time別的參數必須指定為 ValueType,SQL_C_DEFAULTSQL_C_BINARY或者是否使用其對應的結構 (SQL_SS_TIME2_STRUCT和 SQL_SS_TIMESTAMPOFFSET_STRUCT) 。
如需詳細資訊,請參閱 日期和時間改善 (ODBC)。
大型 CLR UDT 的 SQLBindParameter 支援
SQLBindParameter 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 大型CLR使用者定義型別 (ODBC)。