传输八位字节长度

列的传输八位字节长度是将数据传输到其默认 C 数据类型时返回给应用程序的最大字节数。 对于字符数据,传输八进制数长度不包括 null 终止字符的空间。 列的传输八进制数长度可能与在数据源上存储数据所需的字节数不同。

下表显示了为每个 ODBC SQL 数据类型定义的传输八进制数长度。

SQL 类型标识符 长度
所有字符类型[a] 变量类型的定义或最大 () 列的长度(以字节为单位)。 此值与描述符字段SQL_DESC_OCTET_LENGTH相同。
SQL_DECIMAL
SQL_NUMERIC
如果字符集为 ANSI,则保存此数据的字符表示形式所需的字节数;如果字符集为 UNICODE,则为此数字的两倍。 这是最大位数加 2,因为数据以字符串的形式返回,并且数字、符号和小数点需要字符。 例如,定义为 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。