附录 D:数据类型Appendix D: Data Types

ODBC 定义了两组数据类型: SQL 数据类型和 C 数据类型。ODBC defines two sets of data types: SQL data types and C data types. SQL 数据类型指示存储在数据源中的数据的数据类型。SQL data types indicate the data type of data stored at the data source. C 数据类型指示存储在应用程序缓冲区中的数据的数据类型。C data types indicate the data type of data stored in application buffers.

SQL 数据类型由每个 DBMS 根据 SQL-92 标准定义。SQL data types are defined by each DBMS in accordance with the SQL-92 standard. 对于在 SQL-92 标准中指定的每个 SQL 数据类型,ODBC 定义类型标识符,这是作为 ODBC 函数中的参数传递或在结果集的元数据中返回的 #define值。For each SQL data type specified in the SQL-92 standard, ODBC defines a type identifier, which is a #define value that is passed as an argument in ODBC functions or returned in the metadata of a result set. ODBC 不支持的唯一 SQL-92 数据类型为 BIT (ODBC SQL_BIT 类型具有不同的特征)、BIT_VARYING、TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE 和 NATIONAL_CHARACTER。The only SQL-92 data types not supported by ODBC are BIT (the ODBC SQL_BIT type has different characteristics), BIT_VARYING, TIME_WITH_TIMEZONE, TIMESTAMP_WITH_TIMEZONE, and NATIONAL_CHARACTER. 驱动程序负责将特定于数据源的 SQL 数据类型映射到 ODBC SQL 数据类型标识符和特定于驱动程序的 SQL 数据类型标识符。Drivers are responsible for mapping data source-specific SQL data types to ODBC SQL data type identifiers and driver-specific SQL data type identifiers. SQL 数据类型在实现描述符的 SQL_DESC_CONCISE_TYPE 字段中指定。The SQL data type is specified in the SQL_DESC_CONCISE_TYPE field of an implementation descriptor.

ODBC 定义 C 数据类型及其相应的 ODBC 类型标识符。ODBC defines the C data types and their corresponding ODBC type identifiers. 应用程序通过在对SQLBindColSQLGetData的调用中传递TargetType参数中的相应 C 类型标识符来指定将接收结果集数据的缓冲区的 C 数据类型。An application specifies the C data type of the buffer that will receive result set data by passing the appropriate C type identifier in the TargetType argument in a call to SQLBindCol or SQLGetData. 它通过在对SQLBindParameter的调用中传递ValueType参数中适当的 C 类型标识符来指定包含语句参数的缓冲区的 C 类型。It specifies the C type of the buffer containing a statement parameter by passing the appropriate C type identifier in the ValueType argument in a call to SQLBindParameter. C 数据类型在应用程序描述符的 SQL_DESC_CONCISE_TYPE 字段中指定。The C data type is specified in the SQL_DESC_CONCISE_TYPE field of an application descriptor.

备注

没有特定于驱动程序的 C 数据类型。There are no driver-specific C data types.

每个 SQL 数据类型都对应于一个 ODBC C 数据类型。Each SQL data type corresponds to an ODBC C data type. 在从数据源返回数据之前,驱动程序将其转换为指定的 C 数据类型。Before returning data from the data source, the driver converts it to the specified C data type. 在将数据发送到数据源之前,驱动程序会将数据转换为指定的 C 数据类型。Before sending data to the data source, the driver converts it from the specified C data type.

本附录包含以下主题。This appendix contains the following topics.

有关 ODBC 数据类型的说明,请参阅odbc 中的数据类型For an explanation of ODBC data types, see Data Types in ODBC. 有关特定于驱动程序的 SQL 数据类型的信息,请参阅驱动程序的文档。For information about driver-specific SQL data types, see the driver's documentation.