下表显示了如何将 dBASE 数据类型映射到 ODBC SQL 数据类型。 请注意,并非所有 ODBC SQL 数据类型都受支持。
dBASE 数据类型 | ODBC 数据类型 |
---|---|
CHAR | SQL_VARCHAR |
DATE | SQL_DATE |
FLOAT[1] | SQL_DOUBLE |
LOGICAL | SQL_BIT |
备忘录 | SQL_LONGVARCHAR |
数字 (BCD) | SQL_DOUBLE |
OLEOBJECT[1] | SQL_LONGBINARY |
[1] 仅适用于 dBASE 版本 5。X
dBASE III 中的精度允许具有最多两位数指数的数字和最多三位数指数的 dBASE IV 数字。 由于数字以文本的形式存储,因此它们将转换为数字。 如果要转换的数字不适合字段,可能会出现无法解释的结果。
虽然 dBASE 允许使用 NUMERIC 数据类型指定精度和刻度,但 ODBC dBASE 驱动程序不支持它。 对于 NUMERIC 数据类型,ODBC dBASE 驱动程序始终返回 15 的精度和 0 的刻度。
使用 ODBC dBASE 驱动程序使用 Numeric 数据类型创建的列映射到 ODBC 数据类型SQL_DOUBLE。 因此,此列中的数据会四舍五入。 此行为与 dBASE (类型 N) 中的 NUMERIC 数据类型不同,该类型为二进制编码的十进制 (BCD) 。
注意
SQLGetTypeInfo 返回 ODBC SQL 数据类型。 本主题前面列出的 ODBC SQL 数据类型支持 ODBC 程序员参考 附录 D 中的所有转换。
下表显示了 dBASE 数据类型的限制。
数据类型 | 说明 |
---|---|
CHAR | 创建长度为零或未指定长度的 CHAR 列实际上会返回一个 254 字节的列。 |
加密数据 | dBASE 驱动程序不支持加密的 dBASE 表。 |
LOGICAL | dBASE 驱动程序无法对 LOGICAL 列创建索引。 |
备忘录 | MEMO 列的最大长度为 65,500 字节。 |
有关数据类型的更多限制,请参阅 数据类型限制。