客户程序可以通过 SQLGetTypeInfo 函数来获取 DM ODBC 3.0 支持的数据类型信息。
由 SQLGetTypeInfo 返回的数据类型是数据源所支持的数据类型,它们是预备用于 DDL
(DataDefinitionLanguage)语句的。
调用 DM ODBC 3.0 的 SQLGetTypeInfo,返回支持的数据类型如表 3.1 所示:
表 3.1 数据类型列表
类型名 |
类型描述 |
Char(n) |
固定串长度为 n 的字符串,n<=8188 |
Varchar(n) |
最大字符串长度为 n 的可变长度字符串,n<=8188 |
Binary(n) |
固定长度为 n 的二进制数据,n<=8188 |
Varbinary(n) |
最大长度为 n 的可变长度二进制数据,n<=8188 |
Image |
影像数据类型,可变长度的二进制数据,最大长度为 2G-1 |
Text |
文本数据类型,可变长度的字符数据,最大长度为 2G-1 |
Bit |
单个二进制位数据 |
Tinyint |
精度为 3,刻度为 0 的有符号精确数字,取值范围-128…127 |
Smallint |
精度为 5,刻度为 0 的有符号精确数字,取值范围-32,768…32,767 |
Int |
精度为 10,刻度为 0 的有符号精确数字,取值范围-2 [31] ...2 [31]-1 |
Bigint |
[63] 精度为 19,刻度为 0 的有符号精确数字值,取值范围-2[63] …2 -1 |
Real |
二进制精度为 24 的有符号近似数字值,取值范围 0 或者绝对值为: [-38] [38] 10 …10 |
Float |
二进制精度为 53 的有符号近似数字值,取值范围 0 或者绝对值为: [-308] [308] 10 …10 |
Double |
二进制精度为 53 的有符号近似数字值,取值范围 0 或者绝对值为: [-308] [308] 10 …10 |
Decimal(p,s) |
精度为 p,刻度为 s 的有符号精确数字值,1≤p≤38,s≤p |
Numeric(p,s) |
精度为 p,刻度为 s 的有符号精确数字值,1≤p≤38,s≤p |
Date |
日期数据类型,年月日字段,格式与 Gregorian(罗马)日历一致 |
Time(p) |
时间数据类型,时分秒字段,精度 p 指定了秒的精度 |
Timestamp(p) |
时间戳数据类型,年月日时分秒字段,精度 p 指定了秒的精度 |
Interval year(p) |
年间隔,即两个日期之间的年数字,p 为时间间隔的首项字段精度 (后面简称为:首精度) |
Interval month(p) |
月间隔,即两个日期之间的月数字,p 为时间间隔的首精度 |
Interval year(p) to month |
年月间隔,即两个日期之间的年月数字,p 为时间间隔的首精度 |
Interval day(p) |
日间隔,即为两个日期/时间之间的日数字,p 为时间间隔的首精度 |
Interval hour(p) |
时间隔,即为两个日期/时间之间的时数字,p 为时间间隔的首精度 |
Interval minute(p) |
分间隔,即为两个日期/时间之间的分数字,p 为时间间隔的首精度 |
Interval second(p,q) |
秒间隔,即为两个日期/时间之间的秒数字,p 为时间间隔的首精度, q 为时间间隔秒精度 |
Interval day(p) to hour |
日时间隔,即为两个日期/时间之间的日时数字, p 为时间间隔的首精度 |
Interval day(p) to minute |
日时分间隔,即为两个日期/时间之间的日时分数字, p 为时间间隔的首精度 |
Interval day(p) to second(q) |
日时分秒间隔,即为两个日期/时间之间的日时分秒数字, p 为时间间隔的首精度,q 为时间间隔秒精度 |
Interval hour(p) to minute |
时分间隔,即为两个日期/时间之间的时分数字, p 为时间间隔的首精度 |
Interval hour(p) to second(q) |
时分秒间隔,即为两个日期/时间之间的时分秒数字, p 为时间间隔的首精度,q 为时间间隔秒精度 |
Interval minute(p) to second(q) |
分秒间隔,即为两个日期/时间之间的分秒间隔, p 为时间间隔的首精度,q 为时间间隔秒精度 |
注:变长字符串的最大长度受页大小的约束,最大长度为页大小的一半且不超过 8188
个字节。
评论