Large object and user-defined data type mapping

Informix® OLE DB Provider supports large objects and user-defined data types as follows:
  • The BYTE data type is reported by IColumnsInfo::GetColumnInfo() and appropriate schema rowsets as DBTYPE_BYTES; the TEXT data type is reported as DBTYPE_STR. Values of BYTE and TEXT types are cached in memory.
  • Complex data types are reported by IColumnsInfo::GetColumnInfo() and appropriate schema rowsets as DBTYPE_VARIANT. The corresponding value is a safe array.

    This mapping is known to work with ADO and Visual Basic/VBScript.

  • The CLOB data type is reported by IColumnsInfo::GetColumnInfo() and appropriate schema rowsets as DBTYPE_STR with the IS_LONG flag set; the BLOB data type is reported as DBTYPE_BYTES with the IS_LONG flag set.

    This mapping allows ADO to open storage objects on smart large object data and manipulate it with the GetChunk() and AppendChunk() methods.

  • Distinct data types are generally resolved to their source type. For example, if you define an HTML type as a distinct CLOB data type, IColumnsInfo::GetColumnInfo() and appropriate schema rowsets report it as DBTYPE_STR with the IS_LONG flag set.
  • Opaque data types are reported by IColumnsInfo::GetColumnInfo() and appropriate schema rowsets as DBTYPE_BYTES.