SQLBindParameter
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
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 和數據表值參數
與其他參數類型一樣,數據表值參數會由 SQLBindParameter 系結。
系結數據表值參數之後,其數據行也會系結。 若要系結數據行,您可以呼叫 SQLSetStmtAttr ,將SQL_SOPT_SS_PARAM_FOCUS設定為數據表值參數的序數。 然後,針對數據表值參數中的每個數據行呼叫 SQLBindParameter。 若要返回最上層參數係結,請將SQL_SOPT_SS_PARAM_FOCUS設為 0。
如需將參數對應至數據表值參數之描述元欄位的資訊,請參閱 系結和數據傳輸數據表值參數和數據行值。
如需資料表值參數的詳細資訊,請參閱 資料表值參數 (ODBC) 。
增強日期和時間功能的 SQLBindParameter 支援
日期/時間類型的參數值會依從 C 轉換成 SQL 中所述進行轉換。 請注意,如果使用其對應的結構(SQL_SS_TIME2_STRUCT和SQL_SS_TIMESTAMPOFFSET_STRUCT),則 time 和 datetimeoffset 類型的參數必須指定為SQL_C_DEFAULT或SQL_C_BINARY。
如需詳細資訊,請參閱 日期和時間改善 (ODBC)。
大型 CLR UDT 的 SQLBindParameter 支援
SQLBindParameter 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 大型CLR使用者定義型別 (ODBC)。