Share via


傳輸八位長度

當資料傳送至其預設 C 資料類型時,資料行的傳輸八位長度是傳回給應用程式的最大位元組數目。 針對字元資料,傳輸八位長度不包含 null 終止字元的空間。 資料行的傳輸八位長度可能與儲存資料來源上資料所需的位元組數目不同。

下表顯示為每個 ODBC SQL 資料類型定義的傳輸八位長度。

SQL 類型識別碼 長度
所有字元類型[a] 以位元組為單位定義或資料行的最大長度(針對變數型別)。 這個值與描述元欄位SQL_DESC_OCTET_LENGTH相同。
SQL_DECIMAL
SQL_NUMERIC
如果字元集是 ANSI,則保存此資料的字元表示所需的位元組數目,如果字元集是 UNICODE,則為這個數位的兩倍。 這是數位數上限加上兩個,因為資料會以字元字串傳回,而且數位、符號和小數點都需要字元。 例如,定義為 NUMERIC(10,3) 的資料行傳輸長度為 12。
SQL_TINYINT 1
SQL_SMALLINT 2
SQL_INTEGER 4
SQL_BIGINT 8
SQL_REAL 4
SQL_FLOAT 8
SQL_DOUBLE 8
SQL_BIT 1
所有二進位類型[a] 保留已定義之 (針對固定類型) 或最大 (針對變數類型) 字元數所需的位元組數目。
SQL_TYPE_DATE
SQL_TYPE_TIME
6(SQL_DATE_STRUCT或SQL_TIME_STRUCT結構的大小)。
SQL_TYPE_TIMESTAMP 16 (SQL_TIMESTAMP_STRUCT 結構的大小)。
所有間隔資料類型 34 (間隔結構的大小)。
SQL_GUID 16 (GUID 結構的大小)。

[a] 如果驅動程式無法判斷變數類型的資料行或參數長度,則會傳回SQL_NO_TOTAL。