(转)部分 ADO Data Types常量与数据库值对应关系

问题:

adChar这个是指单字节ASCII,但adLongVarChar,adVarChar,adVarWChar,adWChar的区别有那些呢?
ado参考讲的含糊不清。
比方
adLongVarChar,指长字符串值,这个长是指什么呢?是Unicode,还是2个字节,三个字节?或者字串长度?
adVarChar和adChar都是字符串值,他们有什么区别?
adVarWChar和adWChar都是空终止Unicode字符串,他们又有什么区别?

 

 

回答:

上述是 ADO 常量, ADO 参考并未对常量应用的数据库环境进行说明,可行的方法是你创建一个数据库(可以是 MDB SQL SERVER MYSQL 等等等)的表,里面用到所有的数据类型,然后用 ADODB.FIELD 对象集合获取一遍,看数据类型到底是什么

 

这里有所有数据类型的 JET SQL 和 T-SQL 关键字,便于你创建测试数据

    access升级到SQLServer如何调整字段类型及函数。JET SQL T-SQL同义词《ADP...
    http://access911.net/index.asp?u1=a&u2=73FAB11E14DC

    如何用JET SQL 语句得到数据库中表以及表的结构,比如字段、数据类型、长度?《查询》
    http://access911.net/index.asp?u1=a&u2=72FAB61E11DCE8F3

以下是 ADO 对常量字面的解释

         常量            值                                       说明
AdArray                0x2000    一个标志值,通常与另一个数据类型常量组合,指示该数据类型的数组。
(不适用于 ADOX。)
adBigInt                   20    指示一个八字节的有符号整数 (DBTYPE_I8)。
adBinary                  128    指示一个二进制值 (DBTYPE_BYTES)。
adBoolean                  11    指示一个布尔值 (DBTYPE_BOOL)。
adBSTR                      8    指示以 Null 终止的字符串 (Unicode) (DBTYPE_BSTR)。
adChapter                 136    指示一个四字节的子集值,标识子行集合中的行 (DBTYPE_HCHAPTER)。
adChar                    129    指示一个字符串值 (DBTYPE_STR)。
adCurrency                  6    指示一个货币值 (DBTYPE_CY)。货币是一个定点数字,小数点右侧有四位数字。
adDate                      7    指示日期值 (DBTYPE_DATE)。日期保存为双精度数,数字的整数部分是从 1899
adDBDate                  133    指示日期值 (yyyymmdd) (DBTYPE_DBDATE)。
adDBTime                  134    指示时间值 (hhmmss) (DBTYPE_DBTIME)。
adDBTimeStamp             135    指示日期/时间戳(yyyymmddhhmmss 加十亿分之一的小数)(DBTYPE_DBTIMESTAM
adDecimal                  14    指示具有固定精度和范围的确切数字值 (DBTYPE_DECIMAL)。
adDouble                    5    指示一个双精度浮点值 (DBTYPE_R8)。
adEmpty                     0    指定没有值 (DBTYPE_EMPTY)。
adError                    10    指示一个 32 位的错误代码 (DBTYPE_ERROR)。
adFileTime                 64    指示一个 64 位的值,表示从 1601 年 1 月 1 日开始的 100 个十亿分之一秒 
adGUID                     72    指示全局唯一标识符 (GUID) (DBTYPE_GUID)。
adIDispatch                 9    指示指向 COM 对象上 IDispatch 接口的指针 (DBTYPE_IDISPATCH)。

 

                                 注意???ADO 目前不支持这种数据类型。使用它可能导致不可预料的结果。
adInteger                   3    指示一个四字节的有符号整数 (DBTYPE_I4)。
adIUnknown                 13    指示指向 COM 对象上 IUnknown 接口的指针 (DBTYPE_IUNKNOWN)。

                                 注意???ADO 目前不支持这种数据类型。使用它可能导致不可预料的结果。
adLongVarBinary           205    指示一个长二进制值。
adLongVarChar             201    指示一个长字符串值。
adLongVarWChar            203    指示一个以 Null 终止的长 Unicode 字符串值。
adNumeric                 131    指示具有固定精度和范围的确切数字值 (DBTYPE_NUMERIC)。
adPropVariant             138    指示一个 Automation PROPVARIANT (DBTYPE_PROP_VARIANT)。
adSingle                    4    指示一个单精度浮点值 (DBTYPE_R4)。
adSmallInt                  2    指示一个双字节的有符号整数 (DBTYPE_I2)。
adTinyInt                  16    指示一个单字节的有符号整数 (DBTYPE_I1)。
adUnsignedBigInt           21    指示一个八字节的无符号整数 (DBTYPE_UI8)。
adUnsignedInt              19    指示一个四字节的无符号整数 (DBTYPE_UI4)。
adUnsignedSmallInt         18    指示一个双字节的无符号整数 (DBTYPE_UI2)。
adUnsignedTinyInt          17    指示一个单字节的无符号整数 (DBTYPE_UI1)。
adUserDefined             132    指示一个用户定义的变量 (DBTYPE_UDT)。
adVarBinary               204    指示一个二进制值(仅限于 Parameter 对象)。
adVarChar                 200    指示一个字符串值。
adVariant                  12    指示一个 Automation Variant (DBTYPE_VARIANT)。

                                 注意???ADO 目前不支持这种数据类型。使用它可能导致不可预料的结果。
adVarNumeric              139    指示一个数字值(仅限于 Parameter 对象)。
adVarWChar                202    指示一个以 Null 终止的 Unicode 字符串。
adWChar                   130    指示一个以 Null 终止的 Unicode 字符串 (DBTYPE_WSTR)。


The table below shows the ADO Data Type mapping between Access, SQL Server, and Oracle:

DataType EnumValueAccessSQLServerOracle
adBigInt20BigInt (SQL Server 2000 +)
adBinary128Binary
TimeStamp
Raw *
adBoolean11YesNoBit
adChar129CharChar
adCurrency6CurrencyMoney
SmallMoney
adDate7DateDateTime
adDBTimeStamp135DateTime (Access 97 (ODBC))DateTime
SmallDateTime
Date
adDecimal14Decimal *
adDouble5DoubleFloatFloat
adGUID72ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB))UniqueIdentifier (SQL Server 7.0 +)
adIDispatch9
adInteger3AutoNumber
Integer
Long
Identity (SQL Server 6.5)
Int
Int *
adLongVarBinary205OLEObjectImageLong Raw *
Blob (Oracle 8.1.x)
adLongVarChar201Memo (Access 97)
Hyperlink (Access 97)
TextLong *
Clob (Oracle 8.1.x)
adLongVarWChar203Memo (Access 2000 (OLEDB))
Hyperlink (Access 2000 (OLEDB))
NText (SQL Server 7.0 +)NClob (Oracle 8.1.x)
adNumeric131Decimal (Access 2000 (OLEDB))Decimal
Numeric
Decimal
Integer
Number
SmallInt
adSingle4SingleReal
adSmallInt2IntegerSmallInt
adUnsignedTinyInt17ByteTinyInt
adVarBinary204ReplicationID (Access 97)VarBinary
adVarChar200Text (Access 97)VarCharVarChar
adVariant12Sql_Variant (SQL Server 2000 +)VarChar2
adVarWChar202Text (Access 2000 (OLEDB))NVarChar (SQL Server 7.0 +)NVarChar2
adWChar130NChar (SQL Server 7.0 +)

* In Oracle 8.0.x - decimal and int are equal to number and number(10).

 

 

 转自:http://access911.net

 作者:未知  :cg1  

posted @ 2011-01-26 20:48  zhyt1985  阅读(1117)  评论(0编辑  收藏  举报