• Topic
  • Discussion
  • UdaWikiWeb.OLEDBSupportedConversions(Last) -- Owiki? , 2016-08-19 15:00:38 Edit owiki 2016-08-19 15:00:38

    Supported Conversions

    Before the consumer creates an accessor, it can call IConvertType::CanConvert to determine if the provider supports a particular conversion.

    Default Data Type Mapping

    The OpenLink Provider binds to the ODBC/UDBC data source using the types in the table below. The SQL type is queried using SQLDescribeCol. The sign of the data type (signed/unsigned) is determined using SQLColAttributes. It is used in deciding which C type to use in internal buffers and which type indicator to return through IColumnsInfo::GetColumnInfo.


    Table: 5.7.9.1.1. OLE-DB Data Type Mappings

    SQL Type Indicator Indicator of C Type Used For Internal Buffers Sort in descending order OLE DB Type Indicator
    SQL_TINYINT, SQL_SMALLINT SQL_C_USHORT, SQL_C_SSHORTS DBTYPE_I2
    SQL_INTEGER SQL_C_ULONG, SQL_C_SLONG DBTYPE_I4
    SQL_TIMESTAMP SQL_C_TIMESTAMP DBTYPE_DATE
    SQL_TIME SQL_C_TIME DBTYPE_DATE
    SQL_BIGINT SQL_C_STR DBTYPE_STR
    SQL_REAL SQL_C_FLOAT DBTYPE_R4
    SQL_FLOAT, SQL_DOUBLE SQL_C_DOUBLE DBTYPE_R8
    SQL_DATE SQL_C_DATE DBTYPE_DATE
    SQL_BIT SQL_C_BIT DBTYPE_BOOL
    SQL_BINARY, SQL_VARBINARY, SQL_LONGVARBINARY SQL_C_BINARY DBTYPE_BYTES
    SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR, SQL_DECIMAL, SQL_NUMERIC SQL_C_CHAR DBTYPE_STR

    Length Binding

    For types DBTYPE_UI1, DBTYPE_I2, DBTYPE_I4, DBTYPE_I8, DBTYPE_R4, DBTYPE_R8, DBTYPE_CY, DBTYPE_NUMERIC, the length binding is always set to the fixed size of the destination binding type, rather than the internal source type.

    Supported Data Conversions

    The follwoing table outlines the supported type conversion implemented in the OpenLink provider. An 'X' means supported, and '-' means not supported.

    Table: 5.7.9.3.1. OLE-DB Data Type Conversions

    I1 I2 I4 I8 UI1 UI2 UI4 UI8 R4 R8 CY DEC NUM BOOL DATE DBDATE DBTIMESTAMP DBTIME BYTES BSTR STR WSTR DISP UNK GUID
    I1 X X X X X X X X X X X X X - - - - - X X X X - - -
    I2 X X X X X X X X X X X X X - - - - - X X X X - - -
    I4 X X X X X X X X X X X X X - - - - - X X X X - - -
    I8 X X X X X X X X X X X X X - - - - - X X X X - - -
    UI1 X X X X X X X X X X X X X - - - - - X X X X - - -
    UI2 X X X X X X X X X X X X X - - - - - X X X X - - -
    UI4 X X X X X X X X X X X X X - - - - - X X X X - - -
    UI8 X X X X X X X X X X X X X - - - - - X X X X - - -
    R4 X X X X X X X X X X X X X - - - - - X X X X - - -
    R8 X X X X X X X X X X X X X - - - - - X X X X - - -
    CY X X X X X X X X X X X X X - - - - - X X X X - - -
    DEC X X X X X X X X X X X X X - - - - - X X X X - - -
    NUM X X X X X X X X X X X X X - - - - - X X X X - - -
    BOOL - - - - - - - - - - - - - X - - - - X X X X - - -
    DATE - - - - - - - - - - - - - - X X X X X X X X - - -
    DBDATE - - - - - - - - - - - - - - X X - X X X X X - - -
    DBTIME - - - - - - - - - - - - - - X - X X X X X X - - -
    DBTIMESTAMP - - - - - - - - - - - - - - X X X X X X X X - - -
    BYTES X X X X X X X X X X X X X X X X - X X X X X X X X
    BSTR X X X X X X X X X X X X X X X X X X X X X X - - X
    STR X X X X X X X X X X X X X X X X X X X X X X - X X
    WSTR X X X X X X X X X X X X X X X X X X X X X X - X X
    DISP - - - - - - - - - - - - - - - - - - X - - - X X -
    UNK - - - - - - - - - - - - - - - - - - X - - - - X -
    GUID - - - - - - - - - - - - - - - - - - X X X X - - X

    Referenced by...