问题:
| 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 Enum | Value | Access | SQLServer | Oracle |
---|
adBigInt | 20 | | BigInt (SQL Server 2000 +) | | adBinary | 128 | | Binary TimeStamp | Raw * | adBoolean | 11 | YesNo | Bit | | adChar | 129 | | Char | Char | adCurrency | 6 | Currency | Money SmallMoney | | adDate | 7 | Date | DateTime | | adDBTimeStamp | 135 | DateTime (Access 97 (ODBC)) | DateTime SmallDateTime | Date | adDecimal | 14 | | | Decimal * | adDouble | 5 | Double | Float | Float | adGUID | 72 | ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB)) | UniqueIdentifier (SQL Server 7.0 +) | | adIDispatch | 9 | | | | adInteger | 3 | AutoNumber Integer Long | Identity (SQL Server 6.5) Int
| Int * | adLongVarBinary | 205 | OLEObject | Image | Long Raw * Blob (Oracle 8.1.x) | adLongVarChar | 201 | Memo (Access 97) Hyperlink (Access 97) | Text | Long * Clob (Oracle 8.1.x) | adLongVarWChar | 203 | Memo (Access 2000 (OLEDB)) Hyperlink (Access 2000 (OLEDB)) | NText (SQL Server 7.0 +) | NClob (Oracle 8.1.x) | adNumeric | 131 | Decimal (Access 2000 (OLEDB)) | Decimal Numeric | Decimal Integer Number SmallInt | adSingle | 4 | Single | Real | | adSmallInt | 2 | Integer | SmallInt | | adUnsignedTinyInt | 17 | Byte | TinyInt | | adVarBinary | 204 | ReplicationID (Access 97) | VarBinary | | adVarChar | 200 | Text (Access 97) | VarChar | VarChar | adVariant | 12 | | Sql_Variant (SQL Server 2000 +) | VarChar2 | adVarWChar | 202 | Text (Access 2000 (OLEDB)) | NVarChar (SQL Server 7.0 +) | NVarChar2 | adWChar | 130 | | NChar (SQL Server 7.0 +) | |
* In Oracle 8.0.x - decimal and int are equal to number and number(10). |
|
转自:http://access911.net
作者:未知 编辑:cg1
转载于:https://www.cnblogs.com/zhyt1985/archive/2011/01/26/1945764.html