IColumnsInfo: Notes

Limitations

The ODBC Provider does not support the data type SQL_VARIANT. (For more information, see Known Limitations.) IColumnsInfo::GetColumnInfo will report the following metadata for SQL_VARIANT columns:

  • Type = DBTYPE_BYTES

  • Column size = 4294967295

  • DBCOLUMNFLAGS_ISLONG = True

  • SEARACHBLE = DB_ALL_EXCEPT_LIKE (from SQLGetTypeInfo)

Implementation Notes

  • Columns that have an ODBC SQL type of SQL_LONGVARCHAR or SQL_LONGVARBINARY are returned as type DBTYPE_BYTES or DBTYPE_STR, and the DBCOLUMNFLAG_ISLONG is set in the dwFlags element of the DBCOLUMNINFO structure. The ODBC Provider does not instantiate an object for these columns. Instead these settings signify that the bytes stored in the column can be retrieved or stored by requesting an ISequentialStream interface, through which the bytes can be read from or written to.

  • In some ODBC drivers, duplicate columns in an unprepared command cause the ODBC Provider to receive unexpected column names. If the command contains duplicate columns and the consumer prepares the command, unprepares the command, and then executes the command, these drivers do not generate column names for the duplicate columns. This causes a warning, DB_S_ERRORSOCCURRED, in IColumnsInfo::MapColumnsID.

  • The ODBC Provider does not support the following DBCOLUMNFLAGS in IColumnsInfo::GetColumnInfo:

    DBCOLUMNFLAGS_MAYDEFER

    DBCOLUMNFLAGS_WRITE

    DBCOLUMNFLAGS_CACHEDEFERRED

This topic is a part of: