DBPROPFLAGS Enumerated Type

Providers use DBPROPFLAGS values to describe the property, such as the group to which a property belongs and whether the property can be read from or written to. DBPROPFLAGS is used in the DBPROPINFO structure.

The DBPROPFLAGS enumerated type is defined as described in the following table. These flags can be combined except as noted.

DBPROPFLAGS enumerated type

Value Description
DBPROPFLAGS_NOTSUPPORTED The property is not supported or the consumer has requested information about properties not in the Initialization property group and the data source object is uninitialized.

If this value is returned, it cannot be combined with any of the other DBPROPFLAGS values.

DBPROPFLAGS_COLUMN The property belongs to the Column property group.

The flags DBPROPFLAGS_COLUMN, DBPROPFLAGS_DATASOURCE, DBPROPFLAGS_DATASOURCECREATE, DBPROPFLAGS_DATASOURCEINFO, DBPROPFLAGS_DBINIT, DBPROPFLAGS_INDEX, DBPROPFLAGS_ROWSET, DBPROPFLAGS_SESSION,
DBPROPFLAGS_TABLE
are mutually exclusive.

For a description of property groups, see "Property Groups" earlier in this chapter.

DBPROPFLAGS_DATASOURCE The property belongs to the Data Source property group.
DBPROPFLAGS_DATASOURCECREATE The property belongs to the Data Source Creation property group.
DBPROPFLAGS_DATASOURCEINFO The property belongs to the Data Source Information property group.
DBPROPFLAGS_DBINIT The property belongs to the Initialization property group.
DBPROPFLAGS_INDEX The property belongs to the Index property group.
DBPROPFLAGS_ROWSET The property belongs to the Rowset property group.
DBPROPFLAGS_SESSION The property belongs to the Session property group.
DBPROPFLAGS_TABLE The property belongs to the Table property group.
DBPROPFLAGS_COLUMNOK This flag applies only to properties in the Rowset property group and can be set only when DBPROPFLAGS_ROWSET is set.

If it is set, the property can be applied to all columns in the rowset or to a specific column in the rowset. Whether the property applies to a specific column or all columns depends on the value of colid in the DBPROP structures used to set or get the property value.

If it is not set, the property applies to all columns in the rowset.

Setting this flag means the provider supports the property on a per-column basis. This flag can only be returned for rowset properties whose description indicates Column? Y.

DBPROPFLAGS_READ A method can get the property's value. For a list of methods that get properties, see "Getting Property Values" in this chapter.
DBPROPFLAGS_WRITE A method can set the property's value. For a list of methods that set properties, see "Setting Property Values" in this chapter.
DBPROPFLAGS_REQUIRED When returned by IDBProperties::GetPropertyInfo, this flag applies only to properties in the Initialization property group and can be set only when DBPROPFLAGS_DBINIT is set. If it is set, the consumer must specify a value for the property before calling IDBInitialize::Initialize to initialize the data source or enumerator. If it is not set, the data source or enumerator can be initialized even if the consumer does not specify a value for the property before calling IDBInitialize::Initialize. Whether or not a property is required for a particular provider may vary depending on other properties specified (for example, DBPROP_DATASOURCE), or on other provider-specific factors. Providers should only mark as required those properties that are always required for that instance of the DSO. Consumers should be aware that, depending on other factors, such as the combination of initialization properties specified, additional properties not marked as required may need to be specified.

When returned by IDBDataSourceAdmin::
GetCreationProperties
, this flag applies to properties in the Data Source Creation and Session property groups and properties in the Initialization property group that can be used in data source creation. If it is set, the consumer must specify a value for the property when calling IDBDataSourceAdmin::
CreateDataSource
. If it is not set, the data source can be created even if the consumer does not specify a value for the property.