Each OLE DB column has an enumerated indicator that must be mapped to a DBMS data type instance. These instances, which are implemented by a class that supports the IDbmDBMSDataType interface, are created using the following mapping table and are assigned to columns using the PROVIDER_TYPES rowset.
| OLE DB type indicator | Repository mapping | Remarks |
|---|---|---|
| DBTYPE_EMPTY | DbmDBMSDataType | None |
| DBTYPE_NULL | DbmDBMSDataType | None |
| DBTYPE_RESERVED | DbmDBMSDataType | None |
| DBTYPE_I1 | DbmTinyInt | None |
| DBTYPE_I2 | DbmSmallInt | None |
| DBTYPE_I4 | DbmInteger | None |
| DBTYPE_I8 | DbmQuadInt | None |
| DBTYPE_UI1 | DbmTinyInt | OLE DB Scanner sets IDtmNumeric.IsSigned to False |
| DBTYPE_UI2 | DbmSmallInt | OLE DB Scanner sets IDtmNumeric.IsSigned to False |
| DBTYPE_UI4 | DbmInteger | OLE DB Scanner sets IDtmNumeric.IsSigned to False |
| DBTYPE_UI8 | DbmQuadInt | OLE DB Scanner sets IDtmNumeric.IsSigned to False |
| DBTYPE_R4 | DbmReal | OLE DB Scanner sets IDtmNumeric.IsSigned to True |
| DBTYPE_R8 | DbmDouble | OLE DB Scanner sets IDtmNumeric.IsSigned to True |
| DBTYPE_CY | DbmMoney | None |
| DBTYPE_DECIMAL | DbmDecimal | OLE DB Scanner sets IDtmNumeric.IsSigned to True |
| DBTYPE_NUMERIC | DbmNumeric | OLE DB Scanner sets IDtmNumeric.IsSigned to True |
| DBTYPE_DATE | DbmDate | None |
| DBTYPE_BOOL | DbmBit | None |
| DBTYPE_BYTES | DbmBinary or DbmVarBinary | If IsVariable is set to True, OLE DB Scanner uses DbmVarBinary and sets IDtmBinary.IsVariable and IDtmBinary.Length to True |
| DBTYPE_BSTR | DbmDBMSDataType | OLE DB Scanner sets IDtmString.Length and IDtmString.IsVariable to True |
| DBTYPE_STR | DbmChar or DbmVarChar | If IsVariable is set to True, OLE DB Scanner uses DbmVarChar and sets IDtmString.IsVariable and IDtmString.Length to True |
| DBTYPE_WSTR | DbmNChar or DbmNVarChar | If IsVariable is set to True, OLE DB Scanner uses DbmVarChar and sets CharacterType equal to DTM_CHARACTER_TYPE_ UNICODE and IDtmString.IsVariable and IDtmString.Length to True |
| DBTYPE_VARIANT | DbmDBMSDataType | None |
| DBTYPE_IDISPATCH | DbmDBMSDataType | None |
| DBTYPE_IUNKNOWN | DbmDBMSDataType | None |
| DBTYPE_GUID | DbmDBMSDataType | None |
| DBTYPE_ERROR | DbmDBMSDataType | None |
| DBTYPE_BYREF | DbmDBMSDataType | None |
| DBTYPE_ARRAY | DbmDBMSDataType | None |
| DBTYPE_VECTOR | DbmDBMSDataType | None |
| DBTYPE_UDT | DbmDBMSDataType | None |
| DBTYPE_DBDATE | DbmDate | None |
| DBTYPE_DBTIME | DbmTime | None |
| DBTYPE_DBTIMESTAMP | DbmTimeStamp | None |