The following table shows the ADO Data Type mapping between Visual Basic, Access, SQL Server, Oracle, and the .NET Framework.
ADO DataType Enum | ADO DataType Enum Value | .NET Framework | SQL Server | Size | Access | Oracle | Visual Basic 6.0 |
---|---|---|---|---|---|---|---|
adBigInt | 20 | Int64 SqlDbType.BigInt 10 OleDbType.BigInt 11 | bigint 9 | 8 | Variant | ||
adBinary | 128 | Byte[] SqlDbType.VarBinary 10 OleDbType.Binary 11 | binary timestamp | 50 8 | Raw 7 | Variant | |
adBoolean | 11 | Boolean SqlDbType.Bit 10 OleDbType.Boolean 11 | bit | 1 2 | YesNo | Boolean | |
adBSTR | 8 | String OleDbType.BSTR 11 | |||||
adChapter | 136 | (DataReader) | |||||
adChar | 129 | String SqlDbType.Char 10 OleDbType.Char 11 | char | X | Char | String | |
adCurrency | 6 | Decimal SqlDbType.Money 10 OleDbType.Currency 11 | money smallmoney | 8 4 0 | Currency | Currency | |
adDate | 7 | DateTime OleDbType.DBDate 11 | 0 | DateTime 2 | Date | ||
adDBDate | 133 | DateTime OleDbType.DBDate 11 | |||||
adDBFileTime | 137 | DBFileTime 11 | |||||
adDBTime | 134 | DateTime OleDbType.DBTime 11 | |||||
adDBTimeStamp | 135 | DateTime SqlDbType.DateTime 10 OleDbType.DBTimeStamp 11 | datetime smalldatetime | 8 4 0 | DateTime 1 | Date | Date |
adDecimal | 14 | Decimal OleDbType.Decimal 11 | Decimal 7 | Variant 6 | |||
adDouble | 5 | Double SqlDbType.Float 10 OleDbType.Double 11 | float | 8 0 | Double | Float | Double |
adEmpty | 0 | Empty 11 | |||||
adError | 10 | External-Exception OleDbType.Error 11 | |||||
adFileTime | 64 | DateTime OleDbType.Filetime 11 | |||||
adGUID | 72 | Guid SqlDbType.UniqueIdentifier 10 OleDbType.Guid 11 | uniqueidentifier5 | 16 | ReplicationID2,3 | Variant | |
adIDispatch | 9 | Object OleDbType.IDispatch 11 | |||||
adInteger | 3 | Int32 SqlDbType.Int 10 OleDbType.Integer 11 | identity 4 | 4 4 | AutoNumber Long Integer | Int 7 | Long |
adIUnknown | 13 | Object OleDbType.IUnknown 11 | |||||
adLongVarBinary | 205 | Byte[] SqlDbType.VarBinary 10 OleDbType.LongVarBinary 11 | image | 2147483647 | OLEObject | Long Raw 7 Blob 8 | Variant |
adLongVarChar | 201 | String SqlDbType.VarChar 10 OleDbType.LongVarChar 11 | text | 2147483647 | Memo 1, 2 Hyperlink 1, 2 | Long 7 Clob 8 | String |
adLongVarWChar | 203 | String SqlDbType.NText 10 OleDbType.VarWChar 11 | ntext 5 | 1073741823 | Memo 3 Hyperlink 3 | NClob 8 | String |
adNumeric | 131 | Decimal SqlDbType.Decimal 10 OleDbType.Decimal 11 | decimal numeric | 9 | Decimal 3 | Decimal Integer Number SmallInt | Variant 6 |
adPropVariant | 138 | Object OleDbType.PropVariant 11 | |||||
adSingle | 4 | Single SqlDbType.Real 10 OleDbType.Single 11 | real | 4 | Single | Single | |
adSmallInt | 2 | Int16, SqlDbType.SmallInt 10 OleDbType.SmallInt 11 | smallInt | 2 | Integer | Integer | |
adTinyInt | 16 | Byte OleDbType.TinyInt 11 | |||||
adUnsignedBigInt | 21 | UInt64 OleDbType.UnsignedBigInt 11 | |||||
adUnsignedInt | 19 | UInt32 OleDbType.UnsignedInt 11 | |||||
adUnsignedSmallInt | 18 | UInt16 OleDbType.UnsignedSmallInt 11 | |||||
adUnsignedTinyInt | 17 | Byte SqlDbType.TinyInt 10 OleDbType.UnsignedTinyInt 11 | tinyInt | 1 | Byte | Byte | |
adUserDefined | 132 | ||||||
adVarBinary | 204 | Byte[] SqlDbType.VarBinary 10 OleDbType.VarBinary 11 | varbinary | 50 | ReplicationID 1 | Variant | |
adVarChar | 200 | String SqlDbType.VarChar 10 OleDbType.VarChar 11 | varchar | X | Text 1, 2 | VarChar | String |
adVariant | 12 | Object SqlDbType.Variant 10 OleDbType.Variant 11 | sql_variant 9 | 8016 | VarChar2 | Variant | |
adVarNumeric | 139 | OleDbType.VarNumeric 11 | |||||
adVarWChar | 202 | String SqlDbType.NVarChar 10 OleDbType.VarWChar 11 | nvarchar 5 | X | Text 3 | NVarChar2 | String |
adWChar | 130 | String SqlDbType.NChar 10 OleDbType.WChar 11 | nchar 5 | X | String |
1 - ODBC Driver (3.51.171300): Microsoft Access Driver (*.mdb), Access 97 (3.5 format)
2 - OLE DB Provider: Microsoft.Jet.OLEDB.3.51, Access 97 (3.5 format)
3 - OLE DB Provider: Microsoft.Jet.OLEDB.4.0 , Access 2000 (4.0 format)
4 - OLE DB Provider: SQLOLEDB, SQL Server 6.5
5 - OLE DB Provider: SQLOLEDB, SQL Server 7.0 +
6 - The VB Decimal data type can only be used within a Variant, that is, you cannot declare
a VB variable to be of type Decimal.
7 - Oracle 8.0.x Note: DECIMAL and INT are synonyms for NUMBER and NUMBER(10) respectively.
8 - Oracle 8.1.x
9 - OLE DB Provider: SQLOLEDB, SQL Server 2000 +
10 - SQL Server .NET Data Provider (via System.Data.SqlTypes)
11 - OLE DB .NET Data Provider (via System.Data.OleDb)
Note: "User Defined" data types (e.g. ID, TID, EmpID, SysName) are not shown on this diagram.