SQL 至 C:二進位

二進位 ODBC SQL 資料類型的識別碼如下:

SQL_BINARY

SQL_VARBINARY

SQL_LONGVARBINARY

下表顯示可轉換二進位 SQL 資料的 ODBC C 資料類型。 如需資料表中資料行和詞彙的說明,請參閱 將資料從 SQL 轉換成 C 資料類型

C 類型識別碼 測試 *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR (位元組長度的資料) * 2 < BufferLength

(資料位元組長度) * 2 > = BufferLength
資料

截斷的資料
以位元組為單位的資料長度

以位元組為單位的資料長度
n/a

01004
SQL_C_WCHAR (資料字元長度) * 2 < BufferLength

(資料字元長度) * 2 > = BufferLength
資料

截斷的資料
以字元為單位的資料長度

以字元為單位的資料長度
n/a

01004
SQL_C_BINARY 位元組長度的資料 < = BufferLength

資料 > BufferLength 的位元組長度
資料

截斷的資料
以位元組為單位的資料長度

以位元組為單位的資料長度
n/a

01004

當二進位 SQL 資料轉換成字元 C 資料時,來源資料的每個位元組 (8 位) 會以兩個 ASCII 字元表示。 這些字元是十六進位格式數位的 ASCII 字元標記法。 例如,二進位00000001會轉換成 「01」,而二進位11111111會轉換成 「FF」。

驅動程式一律會將個別位元組轉換成十六進位數位組,並以 Null 位元組終止字元字串。 因此,如果 BufferLength 是偶數且小於已轉換資料的長度,就不會使用 * TargetValuePtr 緩衝區的最後一個位元組。 (轉換的資料需要偶數個位元組,下一個位元組是 Null 位元組,而且不能使用最後一個位元組。

注意

不建議應用程式開發人員將二進位 SQL 資料系結至字元 C 資料類型。 此轉換通常效率低下且緩慢。