附录 D:数据类型

ODBC 定义两组数据类型:SQL 数据类型和 C 数据类型。 SQL 数据类型指示存储在数据源中的数据的数据类型。 C 数据类型指示存储在应用程序缓冲区中的数据的数据类型。

SQL 数据类型由每个 DBMS 根据 SQL-92 标准定义。 对于 SQL-92 标准中指定的每个 SQL 数据类型,ODBC 定义一个类型标识符,它是一个 #define 值,在 ODBC 函数中作为参数传递或在结果集的元数据中返回。 ODBC 不支持的唯一 SQL-92 数据类型是 BIT (ODBC SQL_BIT类型具有不同的特征) 、BIT_VARYING、TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE和NATIONAL_CHARACTER。 驱动程序负责将特定于数据源的 SQL 数据类型映射到 ODBC SQL 数据类型标识符和特定于驱动程序的 SQL 数据类型标识符。 SQL 数据类型在实现描述符的SQL_DESC_CONCISE_TYPE字段中指定。

ODBC 定义 C 数据类型及其相应的 ODBC 类型标识符。 应用程序通过在对 SQLBindColSQLGetData 的调用中传递 TargetType 参数中的相应 C 类型标识符来指定将接收结果集数据的缓冲区的 C 数据类型。 它通过在调用 SQLBindParameter 时传递 ValueType 参数中的相应 C 类型标识符来指定包含语句参数的缓冲区的 C 类型。 C 数据类型在应用程序描述符的SQL_DESC_CONCISE_TYPE字段中指定。

注意

没有特定于驱动程序的 C 数据类型。

每个 SQL 数据类型对应于 ODBC C 数据类型。 在从数据源返回数据之前,驱动程序将其转换为指定的 C 数据类型。 在将数据发送到数据源之前,驱动程序会从指定的 C 数据类型转换数据。

本附录包含以下主题。

有关 ODBC 数据类型的说明,请参阅 ODBC 中的数据类型。 有关特定于驱动程序的 SQL 数据类型的信息,请参阅驱动程序的文档。