Meta Data Services Programming

Data Type Mappings in OLE DB Scanner

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