Value | Description |
|---|
DBCOLUMNFLAGS_CACHEDEFERRED | Set if when a deferred column is first read its value the column is cached by the provider. Later reads of the column are done from this cache. The contents of the cache can be overwritten by IRowsetChange::SetData or IRowsetRefresh::RefreshVisibleData. The cached value is released when the row handle is released. Otherwise, not set. This flag can be set through the DBPROP_CACHEDEFERRED property in the Rowset property group. |
DBCOLUMNFLAGS_ISBOOKMARK | Set if the column contains a bookmark. Otherwise, not set. |
DBCOLUMNFLAGS_ISCHAPTER | Set if the row or rowset column contains a chapter value. Otherwise, not set. |
DBCOLUMNFLAGS_ISCOLLECTION | Set if the provider supports direct URL binding and the column determines whether the row models a collection or a simple resource. For document source providers, this flag is set for the RESOURCE_ISCOLLECTION column of the resource rowset. |
DBCOLUMNFLAGS_ISDEFAULTSTREAM | Set if the provider supports direct URL binding, IColumnsInfo is implemented on a row object, and the column has been designated by the provider to contain the default stream of the row object. |
DBCOLUMNFLAGS_ISFIXEDLENGTH | Set if all data in the column has the same length. Otherwise, not set. The flag is always set for fixed-length data types except DBTYPE_BSTR. The flag is set for variable-length data types (DBTYPE_STR, DBTYPE_WSTR, DBTYPE_BSTR, and DBTYPE_BYTES) if all the values are the same length. The flag is set for DBTYPE_VECTOR or DBTYPE_ARRAY columns if all elements in each vector or array are of the same length and each vector or array has the same number of elements. Otherwise, the flag is not set. The flag is not affected by DBTYPE_BYREF. |
DBCOLUMNFLAGS_ISLONG | Set if the column contains a BLOB that contains very long data. The definition of very long data is provider-specific. The setting of this flag corresponds to the value of the IS_LONG column in the PROVIDER_TYPES schema rowset for the data type. When this flag is set, the provider supports reading the value through a storage interface. Although such BLOBs can be retrieved in a single piece with IRowset::GetData, there may be provider-specific problems in doing so. For example, the BLOB might be truncated due to machine limits on memory or GetData might fail if called more than once for the BLOB. Furthermore, when this flag is set, the provider might not be able to accurately return the maximum length of the BLOB data in ulColumnSize in the DBCOLUMNINFO structure. When this flag is not set, the BLOB can be accessed directly through IRowset::GetData. It is provider-specific whether columns without this flag can be read through a storage interface. For more information, see Accessing BLOB Data in BLOBs and COM Objects (OLE DB). |
DBCOLUMNFLAGS_ISNULLABLE | Set if consumer can set the column NULL or if the provider cannot determine whether or not the consumer can set the column to NULL. Otherwise, not set. A column may contain null values, even if it cannot be set to NULL. If DBCOLUMNFLAGS_ISNULLABLE is set, DBCOLUMNFLAGS_MAYBENULL must also be set. |
DBCOLUMNFLAGS_ISROWID | Set if the column contains a persistent row identifier that cannot be written to and has no meaningful value except to identify the row. |
DBCOLUMNFLAGS_ISROWURL | Set if the provider supports direct URL binding, IColumnsInfo is implemented on a row object, and the column contains the URL that names the row object in the data store. |
DBCOLUMNFLAGS_ISROWVER | Set if the column contains a timestamp or other versioning mechanism that cannot be written to directly and that is automatically updated to a new, increasing value when the row is updated and committed. The data type of a version column is provider-specific. How a version column is used — for example, how two version values are compared — is also provider-specific. |
DBCOLUMNFLAGS_MAYBENULL | Set if the column can contain null values or if the provider cannot guarantee that the column cannot contain null values. Otherwise, not set. DBCOLUMNFLAGS_MAYBENULL is generally used by consumers reading data to determine whether or not they might encounter a null value. When DBCOLUMNINFO is returned in the COLUMNS rowset, DBCOLUMNFLAGS_MAYBENULL should not be set if a simple SELECT over the single column of that table would return no null values. DBCOLUMNFLAGS_MAYBENULL can be set even if DBCOLUMNFLAGS_ISNULLABLE is not set. For example, in a left outer join, if there is no row on the right side that matches a row on the left side, the columns from the right side in the joined row contain NULLs, even if the underlying columns are non-nullable — that is, if DBCOLUMNFLAGS_ISNULLABLE is not set. |
DBCOLUMNFLAGS_MAYDEFER | Set if the column is deferred. Otherwise, not set. A deferred column is one for which the data is not fetched from the data store until the consumer attempts to get it. That is, the data is not fetched when the row is fetched but when IRowset::GetData is called. This flag can be set through the DBPROP_DEFERRED property in the Rowset property group. For more information, see Deferred Columns in Rowsets (OLE DB). |
DBCOLUMNFLAGS_SCALEISNEGATIVE | Set if the column type is DBTYPE_VARNUMERIC and bScale represents the absolute value of the negative scale of the column. This flag is used when setting data in a DBTYPE_VARNUMERIC column. For more information, refer to Conversions Involving DBTYPE_NUMERIC or DBTYPE_DECIMAL in Appendix A: Data Types. |
DBCOLUMNFLAGS_WRITE | Set if IRowsetChange::SetData can be called for the column. Otherwise, not set. This flag can be set through the DBPROP_MAYWRITECOLUMN property in the Rowset property group. Providers never set both DBCOLUMNFLAGS_WRITE and DBCOLUMNFLAGS_WRITEUNKNOWN; they are mutually exclusive. Absence of these flags means the column is read-only. |
DBCOLUMNFLAGS_WRITEUNKNOWN | Set if the column in the base table may be updatable through some means, either through IRowsetChange::SetData or through some other mechanism. Providers never set both DBCOLUMNFLAGS_WRITE and DBCOLUMNFLAGS_WRITEUNKNOWN; they are mutually exclusive. Absence of these flags means the column is read-only. |
DBCOLUMNFLAGS_ISROW | This enumerated value is supported only for OLE DB 2.6 providers and later. Identifies a row-valued column. |
DBCOLUMNFLAGS_ISROWSET | This enumerated value is supported only for OLE DB 2.6 providers and later. Identifies a rowset-valued column. |
DBCOLUMNFLAGS_ISSTREAM | This enumerated value is supported only for OLE DB 2.6 providers and later. Identifies stream-valued columns, in addition to the default stream. |
DBCOLUMNFLAGS_ROWSPECIFICCOLUMN | This enumerated value is supported only for OLE DB 2.6 providers and later. Identifies that a row column is row-specific (would be returned by GetColumnInfo on the row). |