共用方式為


SQLPutData

使用 SQLPutData 針對 SQL Server 4.21a) 版或 400 KB 的資料 (傳送超過 65,535 個位元組的資料 (,或針對 SQL Server 6.0 版和更新版本) ) SQL_LONGVARCHAR (text ,SQL_WLONGVARCHAR (ntext) 或 SQL_LONGVARBINARY (image) 資料行,適用下列限制:

  • 參考的參數可以是 INSERT 語句中的 insert_value

  • 參考的參數可以是 UPDATE 語句之 SET 子句中的 運算式

取消一連串 SQLPutData 呼叫,以提供區塊中的資料給執行 SQL Server 的伺服器,會導致使用 6.5 版或更早版本時,部分更新資料行的值。 呼叫 text SQLCancel 時所參考的 、 ntextimage 資料行會設定為中繼預留位置值。

注意

SQL Server Native Client ODBC 驅動程式不支援連線到 SQL Server 6.5 版和更早版本。

診斷

SQLPutData 有一個SQL Server Native Client特定的 SQLSTATE:

SQLSTATE 錯誤 描述
22026 字串資料,長度不符 例如,如果應用程式已指定要傳送位元組的資料長度,例如,使用 n SQL_LEN_DATA_AT_EXEC (n) 其中 n 大於 0,則透過 SQLPutData 指定的應用程式所指定的位元組總數必須符合指定的長度。

SQLPutData 和資料表值參數

搭配資料表值參數使用變數資料列系結時,應用程式會使用 SQLPutData。 StrLen_Or_Ind參數指出驅動程式已準備好收集資料,以取得資料表值參數資料的下一列或多列,或沒有其他資料列可供使用:

  • 大於 0 的值表示有下一組資料列值。

  • 0 這個值表示沒有其他要傳送的資料列。

  • 小於 0 的任何值都是錯誤,而且會記錄 SQLState HY090 以及訊息「無效的字串或緩衝區長度」的診斷記錄。

DataPtr參數會被忽略,但必須設定為非 Null 值。 如需詳細資訊,請參閱 系結和Table-Valued參數和資料行值的資料傳輸中的變數 TVP 資料列系結一節。

如果 StrLen_Or_Ind SQL_DEFAULT_PARAM以外的任何值或介於 0 與SQL_PARAMSET_SIZE (之間的數位,則 SQLBindParameter) 的 ColumnSize 參數會是錯誤。 此錯誤會使 SQLPutData 傳回 SQL_ERROR:SQLSTATE=HY090,表示「無效的字串或緩衝區長度」。

如需資料表值參數的詳細資訊,請參閱 ODBC) (資料表值參數

增強型日期和時間功能的 SQLPutData 支援

日期/時間類型的參數值會如 從 C 轉換成 SQL中所述進行轉換。

如需詳細資訊,請參閱 ODBC) (日期和時間改善

大型 CLR UDT 的 SQLPutData 支援

SQLPutData 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 ODBC) (大型 CLR User-Defined 類型

另請參閱

SQLPutData 函數
ODBC API 實作詳細資料