The properties in this table are contained in the designated property sets and property groups. (For a listing of properties organized by property group, see the Property Groups table.) The “Column ?” designation for Rowset properties states whether the property can be set on individual columns or only on the rowset as a whole.
Important The “Typical R/W” value for each property specifies whether that property can typically be read or written. Whether a particular property can actually be read or written is provider-specific and is returned in the dwPropFlags element of the DBPROPINFO structure.
Property ID | Description |
DBPROP_ABORTPRESERVE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Preserve on Abort VARIANT_TRUE—After aborting a transaction, the rowset remains active. That is, it is possible to fetch new rows, update, delete, and insert rows, and so on. VARIANT_FALSE—After aborting a transaction, the only operations allowed on a rowset are to release row and accessor handles and to release the rowset. |
DBPROP_ACCESSORDER | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Access Order The order in which columns must be accessed on the rowset. One of the following values: DBPROPVAL_AO_RANDOM—Columns can be accessed in any order. DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS—Columns bound as storage objects can only be accessed in sequential order as determined by the column ordinal. Further, storage objects from one row must be retrieved before calling GetData on any columns in any subsequent row. Calling GetData on a column bound as a storage object returns DBSTATUS_E_UNAVAILABLE for any columns bound as storage objects if any of the following are true:
Providers that never impose restrictions on column access ordering return DBPROPSTATUS_S_OK when this value is set. However, they upgrade the property to DBPROPVAL_AO_RANDOM such that calling GetProperty continues to return DBPROPVAL_AO_RANDOM for this property. DBPROPVAL_AO_SEQUENTIAL—All columns must be accessed in sequential order determined by the column ordinal. Further, all columns from one row must be retrieved before calling GetData on any columns in any subsequent row. Calling GetData returns DBSTATUS_E_UNAVAILABLE for any columns for which any of the following are true:
Providers that never impose restrictions on column access ordering return DBPROPSTATUS_S_OK when this value is set. However, they upgrade the property to DBPROPVAL_AO_RANDOM such that calling GetProperty continues to return DBPROPVAL_AO_RANDOM for this property. Providers may be able to optimize how data is retrieved if they know it will be read in column order. For instance, the provider may be able to read directly from a stream over the data if it knows the columns will be read in strictly sequential order, but may not be able to do so efficiently if the columns contain BLOBs that may be read in a random order. |
DBPROP_ACTIVESESSIONS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Active Sessions The maximum number of sessions that can exist at the same time. If this property is set to zero, there is no limit on the number of sessions that can exist at one time. |
DBPROP_ALTERCOLUMN | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Alter Column Support A bitmask describing which portions of the DBCOLUMNDESC structure can be used in a call to IAlterTable::AlterColumn. A combination of one or more of the following:
DBCOLUMNDESCFLAG_TYPENAME For more information about the mapping of these values to fields in the DBCOLUMNDESC structure, refer to the specification for IAlterTable::AlterColumn. |
DBPROP_APPENDONLY | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Append-Only Rowset A rowset opened with this property set to VARIANT_TRUE will be initially empty. If the rowset was obtained by IOpenRowset::OpenRowset, this is equivalent to positioning the start of the rowset at the end of the table; if it was obtained by executing a command, it is equivalent to placing the start of the rowset at the end of the command's results. A rowset opened with DBPROP_APPENDONLY set to VARIANT_TRUE will be populated only by those rows inserted in it. DBPROP_APPENDONLY set to VARIANT_TRUE implies:
|
DBPROP_ASYNCTXNABORT | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Asynchable Abort Whether transactions can be aborted asynchronously. |
DBPROP_ASYNCTXNCOMMIT | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Asynchable Commit Whether transactions can be committed asynchronously. |
DBPROP_AUTH_CACHE_AUTHINFO | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BOOL Typical R/W: R/W Description: Cache Authentication VARIANT_TRUE—The data source object or enumerator is allowed to cache sensitive authentication information such as a password in an internal cache. VARIANT_FALSE—The data source object or enumerator is not allowed to cache sensitive authentication information. |
DBPROP_AUTH_ENCRYPT_PASSWORD | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BOOL Typical R/W: R/W Description: Encrypt Password VARIANT_TRUE—The consumer requires that the password be sent to the data source or enumerator in an encrypted form. This property specifies a stronger form of masking than DBPROP_AUTH_MASKPASSWORD; it uses cryptographic techniques. VARIANT_FALSE—The password can be sent in an unencrypted form. |
DBPROP_AUTH_INTEGRATED | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: Integrated Security A string containing the name of the authentication service used by the server to identify the user using the identity provided by an authentication domain. For example, for Microsoft® NT® Integrated Security, this is "SSPI" (for Security Support Provider Interface). If the BSTR is a null pointer, the default authentication service should be used. When this property is used, no other DBPROP_AUTH* properties are needed and, if provided, their values are ignored. |
DBPROP_AUTH_MASK_PASSWORD | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BOOL Typical R/W: R/W Description: Mask Password VARIANT_TRUE—The consumer requires that the password be sent to the data source or enumerator in a masked form. VARIANT_FALSE—The password can be sent in an unmasked form. |
DBPROP_AUTH_PASSWORD | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: Password The password to be used when connecting to the data source or enumerator. When the value of this property is retrieved with IDBProperties::GetProperties, the provider might return a mask such as "******" or an empty string instead of the actual password. Note that the password is still set internally and is used when IDBInitialize::Initialize is called. |
DBPROP_AUTH_PERSIST_ENCRYPTED | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BOOL Typical R/W: R/W Description: Persist Encrypted VARIANT_TRUE—The consumer requires that the data source object persist sensitive authentication information such as a password in encrypted form. VARIANT_FALSE—The data source object can persist sensitive authentication information in unencrypted form. |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BOOL Typical R/W: R/W Description: Persist Security Info VARIANT_TRUE—The data source object is allowed to persist sensitive authentication information such as a password along with other authentication information. VARIANT_FALSE—The data source object cannot persist sensitive authentication information. If DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO is set to VARIANT_FALSE at the time the data source is initialized, the data source object cannot persist sensitive authentication information. Furthermore, requesting properties that contain sensitive authentication information, such as password, returns some default value instead of the actual password. Once the data source has been uninitialized, sensitive information that was set when the data source was initialized with the DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO property set to VARIANT_FALSE still cannot be obtained through IDBProperties::GetProperties or by persisting the uninitialized data source, but new properties set after the data source has been uninitialized can be persisted or obtained as long as DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO is VARIANT_TRUE. |
DBPROP_AUTH_USERID | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: User ID The user ID to be used when connecting to the data source or enumerator. |
DBPROP_BLOCKINGSTORAGE-OBJECTS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Blocking Storage Objects Whether storage objects might prevent use of other methods on the rowset. VARIANT_TRUE—Instantiated storage objects might prevent the use of other methods on the rowset. That is, after a storage object is created and before it is released, methods other than those on the storage object might return E_UNEXPECTED. VARIANT_FALSE—Instantiated storage objects do not prevent the use of other methods. |
DBPROP_BOOKMARKINFO | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R Description: Bookmark Information A bitmask specifying additional information about bookmarks over the rowset. A combination of zero or more of the following: DBPROPVAL_BI_CROSSROWSET—If set, bookmark values returned by this rowset are valid across rowsets with the same metadata. If not set, bookmark values are specific to this rowset and are not guaranteed to return the same values in other rowsets, even those resulting from the same specification. |
DBPROP_BOOKMARKS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Use Bookmarks Whether the rowset supports bookmarks. One of the following: VARIANT_TRUE—The rowset supports bookmarks. Column 0 is the bookmark for the rows. Getting this column obtains a bookmark value, which can be used to reposition to the row. VARIANT_FALSE—The rowset does not support bookmarks. The rowset is sequential and the values of the DBPROP_LITERALBOOKMARKS and DBPROP_ORDEREDBOOKMARKS properties are ignored. The value of this property is automatically set to VARIANT_TRUE if the value of DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS, or DBPROP_ORDEREDBOOKMARKS is set to VARIANT_TRUE. |
DBPROP_BOOKMARKSKIPPED | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Skip Deleted Bookmarks Whether the rowset allows IRowsetLocate::GetRowsAt, IRowsetScroll::GetApproximatePosition, or IRowsetFind::FindNextRow to continue if a bookmark row was deleted, is a row to which the consumer does not have access rights, or is no longer a member of the rowset. One of the following: VARIANT_TRUE—GetRowsAt, GetApproximatePosition, or FindNextRow skips the bookmark row and continues with the next row. VARIANT_FALSE—GetRowsAt, GetApproximatePosition, or FindNextRow returns DB_E_BADBOOKMARK. |
DBPROP_BOOKMARKTYPE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Bookmark Type The bookmark type supported by the rowset. One of the following: DBPROPVAL_BMK_NUMERIC—The bookmark type is numeric. Numeric bookmarks are based upon a row property that is not dependent on the values of the row's columns. For instance, they can be based on the absolute position of the row within a rowset, or on a row ID that the storage engine assigned to a tuple at its creation. The validity of numeric bookmarks is not changed by modifying the row's columns. DBPROPVAL_BMK_KEY—The bookmark type is key. Key bookmarks are based on the values of one or more of the row's columns; these values form a unique key for each row. A key bookmark may be left dangling if the key values of the corresponding row are changed. For more information, see "Bookmark Types" in Chapter 4. |
DBPROP_BYREFACCESSORS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Pass By Ref Accessors Whether the provider supports the DBACCESSOR_PASSBYREF flag in IAccessor::CreateAccessor. This applies to both row and parameter accessors. |
DBPROP_CACHEDEFERRED | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_BOOL Typical R/W: R/W Description: Cache Deferred Columns VARIANT_TRUE—The provider caches the value of a deferred column when the consumer first gets a value from that column. When the consumer later gets a value from the column, the provider returns the value in the cache. The contents of the cache can be overwritten by IRowsetChange::SetData or IRowsetRefresh::RefreshVisibleData. The cached value is released when the row is released. Consumers should set the value of this property to VARIANT_TRUE rather sparingly, because it might require substantial memory use in the provider. Such use might limit the number of rows that can be held at one time. Setting the value of this property to VARIANT_TRUE automatically sets the value of the DBPROP_DEFERRED property to VARIANT_TRUE. VARIANT_FALSE—The provider does not cache the value of a deferred column, and multiple calls to IRowset::GetData for the column can return different values. |
DBPROP_CANFETCHBACKWARDS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Fetch Backward Whether the rowset can fetch backward. VARIANT_TRUE—cRows in IRowset::GetNextRows, IRowsetLocate::GetRowsAt, and IRowsetScroll::GetRowsAtRatio can be negative. When it is negative, these methods fetch rows backward from the specified row. VARIANT_FALSE—cRows must be non-negative. |
DBPROP_CANHOLDROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Hold Rows VARIANT_TRUE—The rowset allows the consumer to retrieve more rows or change the next fetch position while holding previously fetched rows with pending changes. VARIANT_FALSE—The rowset requires pending changes to be transmitted to the data source and all rows to be released before fetching additional rows, inserting new rows, or changing the next fetch position. |
DBPROP_CANSCROLLBACKWARDS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Scroll Backward Whether the rowset can scroll backward. VARIANT_TRUE—lRowsOffset in IRowset::GetNextRows or IRowsetLocate::GetRowsAt can be negative. VARIANT_FALSE—lRowsOffset must be non-negative. If the rowset supports IRowsetLocate, then the value of this property is VARIANT_TRUE, because this method supports backward scrolling by definition. |
DBPROP_CATALOGLOCATION | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Catalog Location The position of the catalog name in a qualified table name in a text command. One of the following: DBPROPVAL_CL_START—The catalog name is at the start of the fully qualified name. For example, a dBASE® provider returns DBPROPVAL_CL_START because the directory (catalog name) is at the start of the table name, as in \EMPDATA\EMP.DBF. DBPROPVAL_CL_END—The catalog name is at the end of the fully qualified name. For example, an ORACLE server provider returns DBPROPVAL_CL_END because the catalog name is at the end of the table name, as in ADMIN.EMP@EMPDATA. |
DBPROP_CATALOGTERM | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Catalog Term The name the data source uses for a catalog; for example, "catalog", "database", or "directory". This is used for building user interfaces. |
DBPROP_CATALOGUSAGE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Catalog Usage A bitmask specifying how catalog names can be used in text commands. A combination of zero or more of the following: DBPROPVAL_CU_DML_STATEMENTS—Catalog names are supported in all Data Manipulation Language statements. DBPROPVAL_CU_TABLE_DEFINITION—Catalog names are supported in all table definition statements. DBPROPVAL_CU_INDEX_DEFINITION—Catalog names are supported in all index definition statements. DBPROPVAL_CU_PRIVILEGE_DEFINITION—Catalog names are supported in all privilege definition statements. |
DBPROP_CHANGEINSERTEDROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Change Inserted Rows VARIANT_TRUE—The consumer can call IRowsetChange::DeleteRows or IRowsetChange::SetData for newly inserted rows. VARIANT_FALSE—If the consumer calls DeleteRows or SetData for newly inserted rows, DeleteRows returns a status of DBROWSTATUS_E_NEWLYINSERTED for the row and SetData returns DB_E_NEWLYINSERTED. A newly inserted row is defined to be a row for which the insertion has been transmitted to the data source, as opposed to a pending insert row. For some providers this property may imply other properties. |
DBPROP_COL_AUTOINCREMENT | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BOOL Typical R/W: R/W Description: Autoincrement Whether the values of the column are autoincrementing. One of the following: VARIANT_TRUE—The values of the column are autoincrementing. VARIANT_FALSE—The values of the column are not autoincrementing. If this property is read-only, then whether or not a column is autoincrementing is a property of the datatype. If this property is read/write, then DBPROP_COL_AUTOINCREMENT can be specified for the column provided the AUTO_UNIQUE_VALUE property of the underlying datatype is VARIANT_TRUE in the PROVIDER_TYPES schema rowset. |
DBPROP_COL_DEFAULT | Property group: Column Property set: DBPROPSET_COLUMN Type: Any Typical R/W: R/W Description: Default A VARIANT specifying the default value for an object—typically a domain or column. If the default value is a string, the string must be quoted so it can be distinguished from an object of the same name. For example, 'Salary' is a string, but Salary is an object, such as a column. |
DBPROP_COL_DESCRIPTION | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BSTR Typical R/W: R/W Description: Description A string specifying a human-readable description of the specified column. |
DBPROP_COL_FIXEDLENGTH | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BOOL Typical R/W: R/W Description: Fixed Length Whether a column is fixed- or variable-length. If the value of this property is VARIANT_TRUE, the column is fixed length and ulColumnSize in the DBCOLUMNDESC structure contains the fixed-length value. If the value of this property is VARIANT_FALSE or is not specified, the column is variable length and ulColumnSize represents the maximum size of the column. For information about the DBCOLUMNDESC structure, see ITableDefinition::CreateTable. |
DBPROP_COL_NULLABLE | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BOOL Typical R/W: R/W Description: Nullable Whether a column can contain a NULL value. One of the following: VARIANT_TRUE—The column can contain NULL values. VARIANT_FALSE—The column cannot contain NULL values. |
DBPROP_COL_PRIMARYKEY | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BOOL Typical R/W: R/W Description: Primary Key Whether the column is part of the primary key. One of the following: VARIANT_TRUE—The column is part of the primary key of the table. VARIANT_FALSE—The column is not part of the primary key of the table. |
DBPROP_COL_UNIQUE | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_BOOL Typical R/W: R/W Description: Unique Whether values of the column must be unique in the table. One of the following: VARIANT_TRUE—The values of the column must be unique within the table. VARIANT_FALSE—The values of the column can be repeated within the table. |
DBPROP_COLUMNDEFINITION | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Column Definition A bitmask defining the valid clauses for the definition of a column. A combination of zero or more of the following: DBPROPVAL_CD_NOTNULL—Columns can be created non-nullable. |
DBPROP_COLUMNLCID | Property group: Column Property set: DBPROPSET_COLUMN Type: VT_I4 Typical R/W: R Description: Column LCID The locale ID of the column. |
DBPROP_COLUMNRESTRICT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Column Privileges VARIANT_TRUE—Access rights are restricted on a column-by-column basis. If the rowset exposes IRowsetChange, IRowsetChange::SetData cannot be called for at least one column. A provider must not execute a query that would specify a column for which the consumer has no read access rights. VARIANT_FALSE—Access rights are not restricted on a column-by-column basis. If the rowset exposes IRowsetChange, SetData can be called for any column in the rowset. If access is restricted both by row and by column, then individual columns of particular rows might have their own stricter access rights: the consumer might not even be permitted to read such columns. The column values will be NULL. If a NULL value is contrary to schema rules (NULLs not permitted) then the rowset should not count or return any rows that would have this condition. For more information, see DBPROP_ROWRESTRICT. |
DBPROP_COMMANDTIMEOUT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Command Time Out The number of seconds before a command times out. A value of 0 indicates an infinite timeout. |
DBPROP_COMMITPRESERVE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Preserve on Commit VARIANT_TRUE—After committing a transaction, the rowset remains active. That is, it is possible to fetch new rows, update, delete, and insert rows, and so on. VARIANT_FALSE—After committing a transaction, the only operations allowed on a rowset are to release row and accessor handles and to release the rowset. |
DBPROP_CONCATNULLBEHAVIOR | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: NULL Concatenation Behavior How the data source handles the concatenation of NULL-valued character data type columns with non–NULL-valued character data type columns. One of the following: DBPROPVAL_CB_NULL—The result is NULL valued. DBPROPVAL_CB_NON_NULL—The result is the concatenation of the non–NULL-valued column or columns. |
DBPROP_CONNECTIONSTATUS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Connection Status The status of the current connection. One of the following: DBPROPVAL_CS_UNINITIALIZED—The DSO is in an uninitialized state. DBPROPVAL_CS_INITIALIZED—The DSO is in an initialized state and able to communicate with the data store. DBPROPVAL_CS_COMMUNICATIONFAILURE—The DSO is unable to communicate with the data store. Some providers may have to silently spawn multiple connections to the database in order to support multiple concurrent Commands, Sessions, and Rowsets, according to DBPROP_MULTIPLECONNECTIONS. For such providers, DBPROP_CONNECTIONSTATUS refers to the status of the primary connection, which was created when the user called Initialize. |
DBPROP_CURRENTCATALOG | Property group: Data Source Property set: DBPROPSET_DATASOURCE Type: VT_BSTR Typical R/W: R/W Description: Current Catalog The name of the current catalog. The consumer can use the CATALOGS schema rowset to enumerate catalogs. |
DBPROP_DATASOURCENAME | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Data Source Name The name of the data source. This might be used during the connection process. |
DBPROP_DATASOURCEREADONLY | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Read-Only Data Source VARIANT_TRUE—The data source is read-only. VARIANT_FALSE—The data source is updatable. |
DBPROP_DBMSNAME | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: DBMS Name The name of the product accessed by the provider. For example, "ORACLE Server" or, for Microsoft® Excel®, "Excel". |
DBPROP_DBMSVER | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: DBMS Version The version of the product accessed by the provider. The version is of the form ##.##.####, where the first two digits are the major version, the next two digits are the minor version, and the last four digits are the release version. The provider must render the product version in this form but can also append the product-specific version. For example, "04.01.0000 Rdb 4.1". |
DBPROP_DEFERRED | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_BOOL Typical R/W: R/W Description: Defer Column VARIANT_TRUE—The data in the column is not fetched until an accessor is used on the column. VARIANT_FALSE—The data in the column is fetched when the row containing it is fetched. The value of this property is automatically set to VARIANT_TRUE if the value of the DBPROP_CACHEDEFERRED property is set to VARIANT_TRUE. |
DBPROP_DELAYSTORAGEOBJECTS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Delay Storage Object Updates In delayed update mode, if the value of this property is VARIANT_TRUE then storage objects are also used in delayed update mode. In particular:
In delayed update mode, if the value of this property is VARIANT_FALSE, then storage objects are used in immediate update mode. In particular:
|
DBPROP_DSOTHREADMODEL | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Data Source Object Threading Model A bitmask specifying the threading models supported by the data source object. A combination of one or more of the following:
DBPROPVAL_RT_FREETHREAD Note that the threading model returned in this property may be stricter than the thread model registered under the provider's CLSID in the case where additional threading limitations are imposed by underlying components. |
DBPROP_FILTERCOMPAREOPS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_I4 Typical R/W: R Description: Filter Operations A bitmask describing the comparison operations supported by IViewFilter for a particular column. If no column is specified, this is the full set of comparison operators that may be supported:
DBPROPVAL_CO_EQUALITY — Provider supports the following comparison operators:
DBPROPVAL_CO_STRING — Provider supports the following comparison operator:
DBPROPVAL_CO_CONTAINS—Provider supports the following comparison operators:
DBPROPVAL_CO_BEGINSWITH—Provider supports the following comparison operators: DBPROPVAL_CO_CASESENSITIVE — Provider supports the DBCOMPAREOPS_CASESENSITIVE modifier. DBPROPVAL_CO_CASEINSENSITIVE — Provider supports the DBCOMPAREOPS_CASEINSENSITIVE modifier.
|
DBPROP_FINDCOMPAREOPS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_I4 Typical R/W: R Description: Find Operations A bitmask describing the comparison operations supported by IRowsetFind for a particular column. If no column is specified, this is the full set of comparison operators that may be supported:
DBPROPVAL_CO_EQUALITY — Provider supports the following comparison operators:
DBPROPVAL_CO_STRING — Provider supports the following comparison operators:
DBPROPVAL_CO_CONTAINS—Provider supports the following comparison operators:
DBPROPVAL_CO_BEGINSWITH—Provider supports the following comparison operators: DBPROPVAL_CO_CASESENSITIVE — Provider supports the DBCOMPAREOPS_CASESENSITIVE modifier. DBPROPVAL_CO_CASEINSENSITIVE — Provider supports the DBCOMPAREOPS_CASEINSENSITIVE modifier. All providers that support IRowsetFind must support DBPROPVAL_CO_EQUALITY and DBPROPVAL_CO_STRING. Providers may support one, or the other, or both of DBPROPVAL_CO_CASESENSITIVE and DBPROPVAL_CO_CASEINSENSITIVE. |
DBPROP_GROUPBY | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: GROUP BY Support The relationship between the columns in a GROUP BY clause and the nonaggregated columns in the select list. One of the following: DBPROPVAL_GB_EQUALS_SELECT—The GROUP BY clause must contain all nonaggregated columns in the select list. It cannot contain any other columns. For example, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. DBPROPVAL_GB_COLLATE—A COLLATE clause can be specified at the end of each grouping column. DBPROPVAL_GB_CONTAINS_SELECT—The GROUP BY clause must contain all nonaggregated columns in the select list. It can contain columns that are not in the select list. For example, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT, AGE. DBPROPVAL_GB_NO_RELATION—The columns in the GROUP BY clause and the select list are not related. The meaning of nongrouped, nonaggregated columns in the select list is data source–dependent. For example, SELECT DEPT, SALARY FROM EMPLOYEE GROUP BY DEPT, AGE. |
DBPROP_HETEROGENEOUSTABLES | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Heterogeneous Table Support A bitmask specifying whether the provider can join tables from different catalogs or providers. A combination of zero or more of the following:
DBPROPVAL_HT_DIFFERENT_CATALOGS |
DBPROP_IACCESSOR DBPROP_ICHAPTEREDROWSET DBPROP_ICOLUMNSINFO DBPROP_ICOLUMNSROWSET DBPROP_ICONNECTIONPOINTCONTAINER DBPROP_ICONVERTTYPE DBPROP_IDBASYNCHSTATUS DBPROP_IMULTIPLERESULTS DBPROP_IROWSET DBPROP_IROWSETCHANGE DBPROP_IROWSETFIND DBPROP_IROWSETIDENTITY DBPROP_IROWSETINDEX DBPROP_IROWSETINFO DBPROP_IROWSETLOCATE DBPROP_IROWSETREFRESH DBPROP_IROWSETSCROLL DBPROP_IROWSETUPDATE DBPROP_IROWSETVIEW DBPROP_ISUPPORTERRORINFO |
Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W (except as noted below) Description:IAccessor IChapteredRowset IColumnsInfo IColumnsRowset IConnectionPointContainer IConvertType IDBAsynchStatus IMultipleResults IRowset IRowsetChange IRowsetFind IRowsetIdentity IRowsetIndex IRowsetInfo IRowsetLocate IRowsetRefresh IRowsetScroll IRowsetUpdate IRowsetView ISupportErrorInfo If the value of any of these properties is set to VARIANT_TRUE, the rowset supports the specified interface. Providers that support an interface must support the property associated with that interface with a value of VARIANT_TRUE. These properties are primarily used to request interfaces through ICommandProperties::SetProperties. The values of the DBPROP_IRowset, DBPROP_IAccessor, DBPROP_IColumnsInfo, DBPROP_IConvertType, and DBPROP_IRowsetInfo properties are read-only and are always VARIANT_TRUE. They cannot be set to VARIANT_FALSE. If the consumer does not set the value of any of these properties to true, the resulting rowset supports IRowset, IAccessor, IColumnsInfo, IConvertType, and IRowsetInfo. Setting DBPROP_IRowsetLocate to VARIANT_TRUE implicitly causes the created rowset to support bookmarks and IRowsetInfo::GetProperties will return VARIANT_TRUE for the property DBPROP_BOOKMARKS. Setting DBPROP_IRowsetUpdate to VARIANT_TRUE automatically sets DBPROP_IRowsetChange to VARIANT_TRUE. |
DBPROP_IDENTIFIERCASE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Identifier Case Sensitivity How identifiers treat case. One of the following: DBPROPVAL_IC_UPPER—Identifiers in SQL are case insensitive and are stored in uppercase in system catalog. DBPROPVAL_IC_LOWER—Identifiers in SQL are case insensitive and are stored in lowercase in system catalog. DBPROPVAL_IC_SENSITIVE—Identifiers in SQL are case sensitive and are stored in mixed case in system catalog. DBPROPVAL_IC_MIXED—Identifiers in SQL are case insensitive and are stored in mixed case in system catalog. |
DBPROP_ILOCKBYTES DBPROP_ISEQUENTIALSTREAM DBPROP_ISTORAGE DBPROP_ISTREAM |
Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_BOOL Typical R/W: R/W Description:ILockBytes ISequentialStream IStorage IStream If the value of this property is set to VARIANT_TRUE, then the rowset is capable of manipulating the contents of columns as a storage object supporting the specified interface. The provider reports its ability to enable this property on a per-column basis by setting the flag DBPROPFLAGS_COLUMNOK. A provider that does not have the ability to turn the property on/off on a per-column basis, does not set DBPROPFLAGS_COLUMNOK. Regardless of whether the property is supported in the rowset as a whole or on a per-column basis, the ability to manipulate a column value as a storage object depends on whether the provider supports the coercion from the column's native type (BLOB or non-BLOB) to the particular storage interface. |
DBPROP_IMMOBILEROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Immobile Rows VARIANT_TRUE—The rowset will not reorder inserted or updated rows. For IRowsetChange::InsertRow, rows will appear at the end of the rowset. VARIANT_FALSE—If the rowset is ordered, then inserted rows and updated rows (where one or more of the columns in the ordering criteria are updated) obey the ordering criteria of the rowset. If the rowset is not ordered, then inserted rows are not guaranteed to appear in a determinate position, and the position of updated rows is not changed. This property is meaningful only if DBPROP_OWNINSERT is VARIANT_TRUE. |
DBPROP_INDEX_AUTOUPDATE | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Auto-Update Whether the index is maintained automatically when changes are made to the corresponding base table. One of the following: VARIANT_TRUE—The index is automatically maintained. VARIANT_FALSE—The index must be maintained by the consumer through explicit calls to IRowsetChange. Ensuring consistency of the index as a result of updates to the associated base table is the responsibility of the consumer. VARIANT_TRUE is always returned when using integrated indexes. |
DBPROP_INDEX_CLUSTERED | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Clustered Whether an index is clustered. VARIANT_TRUE—The leaf nodes of the index contain full rows, not bookmarks. This is a way to represent a table clustered by key value. VARIANT_FALSE—The leaf nodes of the index contain bookmarks of the base table rows whose key value matches the key value of the index entry. |
DBPROP_INDEX_FILLFACTOR | Property group: Index Property set: DBPROPSET_INDEX Type: VT_I4 Typical R/W: R/W Description: Fill Factor For a B+-tree index, this property represents the storage utilization factor of page nodes during the creation of the index. The value is an integer from 1 to 100 representing the percentage of use of an index node. For a linear hash index, this property represents the storage utilization of the entire hash structure (the ratio of the used area to the total allocated area) before a file structure expansion occurs. |
DBPROP_INDEX_INITIALSIZE | Property group: Index Property set: DBPROPSET_INDEX Type: VT_I4 Typical R/W: R/W Description: Initial Size The total number of bytes allocated to this structure at creation time. |
DBPROP_INDEX_NULLCOLLATION | Property group: Index Property set: DBPROPSET_INDEX Type: VT_I4 Typical R/W: R/W Description: NULL Collation How NULLs are collated in the index. One of the following: DBPROPVAL_NC_END—NULLs are collated at the end of the list, regardless of the collation order. DBPROPVAL_NC_START—NULLs are collated at the start of the list, regardless of the collation order. DBPROPVAL_NC_HIGH—NULLs are collated at the high end of the list. DBPROPVAL_NC_LOW—NULLs are collated at the low end of the list. |
DBPROP_INDEX_NULLS | Property group: Index Property set: DBPROPSET_INDEX Type: VT_I4 Typical R/W: R/W Description: NULL Keys Whether NULL keys are allowed. One of the following values: DBPROPVAL_IN_DISALLOWNULL—The index does not allow entries where the key columns are NULL. If the consumer attempts to insert an index entry with a NULL key, then the provider returns an error. DBPROPVAL_IN_IGNORENULL—The index does not insert entries containing NULL keys. If the consumer attempts to insert an index entry with a NULL key, then the provider ignores that entry and no error code is returned. DBPROPVAL_IN_IGNOREANYNULL—The index does not insert entries where some column key has a NULL value. For an index having a multi-column search key, if the consumer inserts an index entry with NULL value in some column of the search key, then the provider ignores that entry and no error code is returned. |
DBPROP_INDEX_PRIMARYKEY | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Primary Key Whether the index represents the primary key on the table. |
DBPROP_INDEX_SORTBOOKMARKS | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Sort Bookmarks How the index treats repeated keys. One of the following: VARIANT_TRUE—The index sorts repeated keys by bookmark. VARIANT_FALSE—The index does not sort repeated keys by bookmark. |
DBPROP_INDEX_TEMPINDEX | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Temporary Index Whether the index is temporary. One of the following: VARIANT_TRUE—The index is destroyed when the session is released. VARIANT_FALSE—The index is created permanently. |
DBPROP_INDEX_TYPE | Property group: Index Property set: DBPROPSET_INDEX Type: VT_I4 Typical R/W: R/W Description: Index Type The type of the index. One of the following: DBPROPVAL_IT_BTREE—The index is a B+-tree. DBPROPVAL_IT_HASH—The index is a hash file using linear or extensible hashing. DBPROPVAL_IT_CONTENT—The index is a content index. DBPROPVAL_IT_OTHER—The index is some other type of index. |
DBPROP_INDEX_UNIQUE | Property group: Index Property set: DBPROPSET_INDEX Type: VT_BOOL Typical R/W: R/W Description: Unique Whether index keys must be unique. VARIANT_TRUE: The index keys must be unique. VARIANT_FALSE: Duplicate keys are allowed. |
DBPROP_INIT_ASYNCH | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Asynchronous Processing A bitmask specifying the asynchronous processing performed on the data source. A combination of zero or more of the following DBPROPVAL_ASYNCH_INITIALIZE: IDBInitialize::Initialize returns immediately, but the actual initialization of the data source is done asynchronously. The data source behaves as an unititialized data source prior to completing the initialization process, except that any call to IDBInitialize returns E_UNEXPECTED. If no bits are set (the default), IDBInitialize::Initialize does not return until the data source is completely initialized. |
DBPROP_INIT_CATALOG | Property group: Initialization Property set: DBPROPSET_DBINIT Typical R/W: R/W Description: Initial Catalog The name of the initial, or default, catalog to use when connecting to the data source. If the provider supports changing the catalog for an initialized data source, the consumer can specify a different catalog name through the DBPROP_CURRENCATALOG property in the DBPROPSET_DATASOURCE property set after initialization. |
DBPROP_INIT_DATASOURCE | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: Data Source The name of the database or enumerator to connect to. DBPROP_INIT_DATASOURCE is used to identify the data source to connect to, for instance a relational database server or a local file. If the provider uses two-part naming to identify the data source, then the data source name is qualified with the location specified in DBPROP_INIT_DATASOURCE. |
DBPROP_INIT_HWND | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Window Handle The window handle to be used if the data source object or enumerator needs to prompt for additional information. |
DBPROP_INIT_IMPERSONATION_LEVEL | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Impersonation Level The level of impersonation that the server is allowed to use when impersonating the client. This property applies only to network connections other than Remote Procedure Call (RPC) connections; these impersonation levels are similar to those provided by RPC. The values of this property correspond directly to the levels of impersonation that can be specified for authenticated RPC connections, but can be applied to connections other than authenticated RPC. One of the following: DB_IMP_LEVEL_ANONYMOUS—The client is anonymous to the server. The server process cannot obtain identification information about the client and cannot impersonate the client. DB_IMP_LEVEL_IDENTIFY—The server can obtain the client's identity. The server can impersonate the client for ACL checking but cannot access system objects as the client. DB_IMP_LEVEL_IMPERSONATE—The server process can impersonate the client's security context while acting on behalf of the client. This information is obtained when the connection is established, not on every call. DB_IMP_LEVEL_DELEGATE—The process can impersonate the client's security context while acting on behalf of the client. The server process can also make outgoing calls to other servers while acting on behalf of the client. |
DBPROP_INIT_LCID | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Locale Identifier The locale ID of preference for the consumer. Consumers specify the LCID at initialization. This provides a method for the server to determine the consumer's LCID of choice in cases where it can use this information. This property does not guarantee that all text returned to the consumer will be translated according to the LCID. Providers may wish to set the dwOptions of the DBPROP structure for this property to DBPROPOPTIONS_OPTIONAL. |
DBPROP_INIT_LOCATION | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: Location The location of the data source or enumerator to connect to. Typically, this will be a server name. DBPROP_INIT_LOCATION is used as the first part of a two-part name to qualify the data source specified in the DBPROP_INIT_DATASOURCE property. For example, if the data source is defined on a different machine, this might be the machine name on which to look for the data source definition. This is typically not used if the provider can identify the data source using a single name, such as the name of an RDBMS server, that the consumer can use to identify the data source directly. |
DBPROP_INIT_MODE | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Mode A bitmask specifying access permissions. A combination of zero or more of the following: DB_MODE_READ—Read-only. DB_MODE_WRITE—Write-only. DB_MODE_READWRITE—Read/write (DB_MODE_READ | DB_MODE_WRITE). DB_MODE_SHARE_DENY_READ—Prevents others from opening in read mode. DB_MODE_SHARE_DENY_WRITE—Prevents others from opening in write mode. DB_MODE_SHARE_EXCLUSIVE—Prevents others from opening in read/write mode (DB_MODE_SHARE_DENY_READ | DB_MODE_SHARE_DENY_WRITE). DB_MODE_SHARE_DENY_NONE—Neither read nor write access can be denied to others. |
DBPROP_INIT_OLEDBSERVICES | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: OLE DB Services A bitmask specifying OLE DB services to enable. A combination of zero or more of the following: DBPROPVAL_OS_RESOURCEPOOLING—Resources should be pooled. DBPROPVAL_OS_TXNENLISTMENT—Sessions in an MTS environment should automatically be enlisted in a global transaction where required (implies DBPROPVAL_OS_RESOURCEPOOLING). DBPROPVAL_OS_ENABLEALL (default)—All services should be invoked. By default, all services are enabled and invoked as requested. Individual services can be deselected by specifying the bitwise-OR of DBPROPVAL_OS_ENABLEALL along with the bitwise complement of any services to be deselected. For example, DBPROPVAL_OS_ENABLEALL | ~DBPROPVAL_OS_TXNENLISTMENT enables all services except automatic transaction enlistment in an MTS environment. |
DBPROP_INIT_PROMPT | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I2 Typical R/W: R/W Description: Prompt Whether to prompt the user during initialization. One of the following values: DBPROMPT_PROMPT—Always prompt the user for initialization information. DBPROMPT_COMPLETE—Prompt the user only if more information is needed. DBPROMPT_COMPLETEREQUIRED—Prompt the user only if more information is needed. Do not allow the user to enter optional information. DBPROMPT_NOPROMPT—Do not prompt the user. Information obtained from the user during prompting is available following initialization by calling GetProperties for the appropriate initialization properties. |
DBPROP_INIT_PROTECTION_LEVEL | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Protection Level The level of protection of data sent between client and server. This property applies only to network connections other than RPC connections; these protection levels are similar to those provided by RPC. The values of this property correspond directly to the levels of protection that can be specified for authenticated RPC connections, but can be applied to connections other than authenticated RPC. One of the following: DB_PROT_LEVEL_NONE—Performs no authentication of data sent to the server. DB_PROT_LEVEL_CONNECT—Authenticates only when the client establishes the connection with the server. DB_PROT_LEVEL_CALL—Authenticates the source of the data at the beginning of each request from the client to the server. DB_PROT_LEVEL_PKT—Authenticates that all data received is from the client. DB_PROT_LEVEL_PKT_INTEGRITY—Authenticates that all data received is from the client and that it has not been changed in transit. DB_PROT_LEVEL_PKT_PRIVACY—Authenticates that all data received is from the client, that it has not been changed in transit, and protects the privacy of the data by encrypting it. |
DBPROP_INIT_PROVIDERSTRING | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_BSTR Typical R/W: R/W Description: Extended Properties A string containing provider-specific, extended connection information. Use of this property implies that the consumer knows how this string will be interpreted and used by the provider. Consumers should use this property only for provider-specific connection information that cannot be explicitly described through the property mechanism. |
DBPROP_INIT_TIMEOUT | Property group: Initialization Property set: DBPROPSET_DBINIT Type: VT_I4 Typical R/W: R/W Description: Connect Timeout The amount of time (in seconds) to wait for initialization to complete. For maximum user concurrency and component interoperability, providers for whom initialization is a potentially lengthy operation, such as connection across a network, are strongly encouraged to support this property. |
DBPROP_IVIEWCHAPTER DBPROP_IVIEWFILTER DBPROP_IVIEWROWSET DBPROP_IVIEWSORT DBPROP_IACCESSOR DBPROP_ICOLUMNSINFO DBPROP_ISUPPORTERRORINFO |
Property group: View Property set: DBPROPSET_VIEW Column? N Type: VT_BOOL Typical R/W: R/W Description:IViewChapter IViewFilter IViewRowset IViewSort IAccessor IColumnsInfo ISupportErrorInfo For all methods returning a Rowset or View object, in addition to Rowset properties, DBPROPSET_VIEW should be set before creating a view. |
DBPROP_LITERALBOOKMARKS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Literal Bookmarks VARIANT_TRUE—Bookmarks can be compared literally. That is, they can be compared as a sequence of bytes. Furthermore, if the bookmarks are ordered (as specified by the DBPROP_ORDEREDBOOKMARKS property), the bytes are guaranteed to be ordered so that an arithmetic comparison as their scalar type yields the same result as a call to IRowsetLocate::Compare. Setting the value of this property to VARIANT_TRUE automatically sets the value of DBPROP_BOOKMARKS to VARIANT_TRUE. VARIANT_FALSE—Bookmarks can only be compared with IRowsetLocate::Compare. |
DBPROP_LITERALIDENTITY | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Literal Row Identity VARIANT_TRUE—The consumer can perform a binary comparison of two row handles to determine whether they point to the same row. VARIANT_FALSE—The consumer must call IRowsetIdentity::IsSameRow to determine whether two row handles point to the same row. Whether the handle of a newly inserted row can be successfully compared to another handle is specified by the DBPROP_STRONGIDENTITY property. For more information about row identity, see "Uniqueness of Rows in the Rowset" in Chapter 4. |
DBPROP_LOCKMODE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Lock Mode The level of locking peformed by the rowset. One of the following: DBPROPVAL_LM_NONE—The provider is not required to lock rows at any time to ensure successful updates. Updates may fail when sent to the server for reasons of concurrency (for example, if someone else has updated the row). DBPROPVAL_LM_SINGLEROW—The provider uses the minimum level of locking necessary to ensure that changes successfully written to a single row returned by the most recent fetch will not fail due to a concurrency violation if Update is called before any additional rows are retrieved. Typically this means that the provider takes a lock on the row when SetData is first called on the row, but the provider may lock the row as early as when it is read in order to guarantee that calling Update will succeed. Lock Mode and Isolation Level are closely related, but distinct. A consumer's isolation level specifies the isolation of that consumer from changes made by other users to the underlying data. Lock mode defines when underlying data is locked in order to ensure updates succeed. The provider may use locking in order to enforce higher levels of isolation, in which case a higher level of locking may occur than required to enforce the specified lock mode. Lock mode specifies the minimum level of locking. |
DBPROP_MAXINDEXSIZE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum Index Size The maximum number of bytes allowed in the combined columns of an index. If there is no specified limit or the limit is unknown, this value is set to zero. |
DBPROP_MAXOPENCHAPTERS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum Open Chapters The maximum number of of chapters that can be open at any time. If a chapter must be released before a new chapter can be opened, this value is one; if the provider does not support chapters, this value is zero. |
DBPROP_MAXOPENROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Maximum Open Rows The maximum number of rows that can be active at the same time. This limit does not reflect resource limitations such as RAM, but does apply if the rowset implementation uses some strategy that results in a limit. If there is no limit, the value of this property is zero. The provider is free to support a greater number of active rows than the maximum specified by the consumer. In this case, the provider will return its actual maximum number of active rows instead of the value specified by the consumer. |
DBPROP_MAXORSINFILTER | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum OR Conditions The maximum number of disjunct conditions that can be supported in a view filter. Multiple conditions (rows) of a view filter are joined in a logical OR. Providers that do not support joining multiple conditions return a value of 1. Providers that do not support view filters return a value of 0. This value applies only to the conditions that can be joined in a logical OR in a call to SetFilter; it does not imply the maximum number of OR conditions that may exist in a command. |
DBPROP_MAXPENDINGROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Maximum Pending Rows The maximum number of rows that can have pending changes at the same time. This limit does not reflect resource limitations such as Random Access Memory (RAM), but does apply if the rowset implementation uses some strategy that results in a limit. If there is no limit, this value is zero. The provider is free to support a greater number of pending rows than the maximum specified by the consumer. In this case, the provider will return its actual maximum number of pending rows instead of the value specified by the consumer. |
DBPROP_MAXROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Maximum Rows The maximum number of rows that can be returned in a rowset. If there is no limit, this value is zero. If the provider supports setting DBPROP_MAXROWS the provider must ensure that the rowset never contains more than the specified number of rows. |
DBPROP_MAXROWSIZE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum Row Size The maximum length of a single row in a table. If there is no specified limit or the limit is unknown, this value is set to zero. |
DBPROP_MAXROWSIZEINCLUDESBLOB | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Maximum Row Size Includes BLOB VARIANT_TRUE—The maximum row size returned for the DBPROP_MAXROWSIZE property includes the length of all BLOB data. VARIANT_FALSE—The maximum row size does not include the length of all BLOB data. |
DBPROP_MAXSORTCOLUMNS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum Sort Columns The maximum number of columns that can be supported in a View Sort. If there is no specified limit or the limit is unknown, this value is set to zero. This value applies only to the number of sort columns that can be specified in a call to SetSortOrder; it does not imply the maximum number of columns that can be used to sort in a command. |
DBPROP_MAXTABLESINSELECT | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Maximum Tables in SELECT The maximum number of tables allowed in the FROM clause of a SELECT statement. If there is no specified limit or the limit is unknown, this value is set to zero. |
DBPROP_MAYWRITECOLUMN | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_BOOL Typical R/W: R/W Description: Column Writable Whether a particular column is writable or not. This property can be set implicitly through the command used to create the rowset. For example, if the rowset is created by the SQL statement SELECT A, B FROM MyTable FOR UPDATE OF A, then this property is VARIANT_TRUE for column A and VARIANT_FALSE for column B. |
DBPROP_MEMORYUSAGE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Memory Usage This property estimates the amount of memory that can be used by the rowset. If it is 0, the rowset can use unlimited memory. If it is between 1 and 99 inclusive, the rowset can use the specified percentage of total available virtual memory (physical and page file). If it is greater than or equal to 100, the rowset can use up to the specified number of kilobytes of memory. |
DBPROP_MULTIPLECONNECTIONS | Property group: Data Source Property set: DBPROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Multiple Connections Some providers may have to spawn multiple connections to the database in order to support multiple concurrent Commands, Sessions, and Rowsets. Such providers may expose DBPROP_MULTIPLECONNECTIONS in order to let the consumer disable making additional connections under the covers. Providers that can support multiple concurrent Commands, Sessions, and Rowsets without spawning multiple connections do not support this property. VARIANT_TRUE (default)—The provider silently creates additional connections as required in order to support concurrent Command, Session, and Rowset objects. VARIANT_FALSE—The provider returns DB_E_OBJECTOPEN if a method would require spawning an additional connection to the database. |
DBPROP_MULTIPLEPARAMSETS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Multiple Parameter Sets VARIANT_TRUE—The provider supports multiple parameter sets. VARIANT_FALSE—The provider supports only a single set of parameters per execution. All providers that support parameters must support this property. Providers that do not support parameters must not support this property. |
DBPROP_MULTIPLERESULTS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Multiple Results A bitmask specifying whether the provider supports multiple results objects and what restrictions it places on these objects. A combination of zero or more of the following: DBPROPVAL_MR_SUPPORTED—The provider supports multiple results objects. DBPROPVAL_MR_CONCURRENT—More than one rowset created by the same multiple results object can exist concurrently. If this bit is not set, the consumer must release the current rowset before calling IMultipleResults::GetResult to get the next result. If multiple results objects are not supported, DBPROPVAL_MR_NOTSUPPORTED is returned. For more information about multiple results, see "Multiple Results" in Chapter 3. |
DBPROP_MULTIPLESTORAGEOBJECTS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Multiple Storage Objects VARIANT_TRUE—The provider supports multiple, open storage objects at the same time. VARIANT_FALSE—The provider supports only one open storage object at a time. Any method that attempts to open a second storage object returns a status of DBSTATUS_E_CANTCREATE for the column on which it attempted to open the second storage object, regardless of whether the objects are constructed over the same column, different columns in the same row, or different rows. |
DBPROP_MULTITABLEUPDATE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Multi-Table Update VARIANT_TRUE—The provider can update rowsets derived from multiple tables. VARIANT_FALSE—The provider cannot update rowsets derived from multiple tables. |
DBPROP_NOTIFICATIONGRANULARITY | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Notification Granularity DBPROPVAL_NT_SINGLEROW—For methods that operate on multiple rows, the provider calls IRowsetNotify::OnRowChange separately for each phase for each row. A cancellation affects a single row; it does not affect the other rows, and notifications are still sent for these rows. DBPROPVAL_NT_MULTIPLEROWS—For methods that operate on multiple rows, then for each phase, the provider calls OnRowChange once for all rows that succeed and once for all rows that fail. This separation can occur at each phase where a change can fail. For example, if IRowsetChange::DeleteRows deletes some rows and fails to delete others during the Preliminary Work phase, it calls OnRowChange twice: once with DBEVENTPHASE_SYNCHAFTER and the array of handles of rows that it deleted, and once with DBEVENTPHASE_FAILEDTODO and the array of handles of rows it failed to delete. A cancellation affects all rows with handles that were passed to OnRowChange. DBPROP_NOTIFICATIONGRANULARITY does not affect how providers return notifications about events that affect columns or the entire rowset. |
DBPROP_NOTIFICATIONPHASES | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R Description: Notification Phases A bitmask specifying the notification phases supported by the provider. A combination of two or more of the following:
DBPROPVAL_NP_OKTODO The DBPROPVAL_NP_FAILEDTODO and DBPROPVAL_NP_DIDEVENT bits must be returned by all providers that support notifications. |
DBPROP_NOTIFYCOLUMNSET DBPROP_NOTIFYROWDELETE DBPROP_NOTIFYROWFIRSTCHANGE DBPROP_NOTIFYROWINSERT DBPROP_NOTIFYROWRESYNCH DBPROP_NOTIFYROWSETRELEASE DBPROP_NOTIFYROWSETFETCH-POSITIONCHANGE DBPROP_NOTIFYROWUNDOCHANGE DBPROP_NOTIFYROWUNDODELETE DBPROP_NOTIFYROWUNDOINSERT DBPROP_NOTIFYROWUPDATE |
Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R Description:Column Set Notification Row Delete Notification Row First Change Notification Row Insert Notification Row Resynchronization Notification Rowset Release Notification Rowset Fetch Position Change Notification Row Undo Change Notification Row Undo Delete Notification Row Undo Insert Notification Row Update Notification A bitmask specifying whether the notification phase is cancelable. A combination of zero or more of the following:
DBPROPVAL_NP_OKTODO |
DBPROP_NULLCOLLATION | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: NULL Collation Order Where NULLs are sorted in a list. One of the following: DBPROPVAL_NC_END—NULLs are sorted at the end of the list, regardless of the sort order. DBPROPVAL_NC_HIGH—NULLs are sorted at the high end of the list. DBPROPVAL_NC_LOW—NULLs are sorted at the low end of the list. DBPROPVAL_NC_START—NULLs are sorted at the start of the list, regardless of the sort order. |
DBPROP_OLEOBJECTS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: OLE Object Support A bitmask specifying the ways in which the provider supports access to BLOBs and OLE objects stored in columns. A combination of zero or more of the following: DBPROPVAL_OO_BLOB—The provider supports access to BLOBs as structured storage objects. A consumer determines what interfaces are supported through DBPROP_STRUCTUREDSTORAGE. DBPROPVAL_OO_IPERSIST—The provider supports access to OLE objects through IPersistStream, IPersistStreamInit, or IPersistStorage. |
DBPROP_ORDERBYCOLUMNSINSELECT | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: ORDER BY Columns in Select List VARIANT_TRUE—Columns in an ORDER BY clause must be in the select list. VARIANT_FALSE—Columns in an ORDER BY clause are not required to be in the select list. |
DBPROP_ORDEREDBOOKMARKS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Bookmarks Ordered VARIANT_TRUE—Bookmarks can be compared to determine the relative position of their associated rows in the rowset. Setting the value of this property to VARIANT_TRUE automatically sets the value of DBPROP_BOOKMARKS to VARIANT_TRUE. VARIANT_FALSE—Bookmarks can only be compared for equality. Whether bookmarks can be compared byte-by-byte or must be compared with IRowsetLocate::Compare depends on the value of the DBPROP_LITERALBOOKMARKS property. |
DBPROP_OTHERINSERT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Others' Inserts Visible VARIANT_TRUE—The rowset can see rows inserted by someone other than a consumer of the rowset. That is, if someone other than a consumer of the rowset inserts a row, any consumer of the rowset can see that row the next time it fetches a set of rows containing it. This includes rows inserted by other parties in the same transaction, as well as rows inserted by parties outside the transaction. The transaction isolation level does not affect the ability of the rowset to see rows inserted by other parties in the same transaction, such as other rowsets in the same session. However, it does restrict the ability of the rowset to see rows inserted by parties outside the transaction. VARIANT_FALSE—The rowset cannot see rows inserted by others. For programmers accustomed to the cursor model in ODBC, the DBPROP_OTHERUPDATEDELETE and DBPROP_OTHERINSERT properties correspond to ODBC cursors as follows:
Static cursor:
Keyset-driven cursor:
Dynamic cursor: Furthermore, the DBPROP_OWNUPDATEDELETE and DBPROP_OWNINSERT properties correspond to the values returned by the SQL_STATIC_SENSITIVITY information type in SQLGetInfo in ODBC. For a description of how these properties relate to transaction isolation level, see "Visibility of Other Changes" in Chapter 5. |
DBPROP_OTHERUPDATEDELETE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Others' Changes Visible VARIANT_TRUE—The rowset can see updates and deletes made by someone other than a consumer of the rowset. That is, suppose someone other than a consumer of the rowset updates the data underlying a row or deletes the row. If the row is released completely, any consumer of the rowset will see that change the next time it fetches the row. This includes updates and deletes made by other parties in the same transaction, as well as updates and deletes made by parties outside the transaction. The transaction isolation level does not affect the ability of the rowset to see updates or deletes made by other parties in the same transaction, such as other rowsets in the same session. However, it does restrict the ability of the rowset to see updates or deletes made by parties outside the transaction. VARIANT_FALSE—The rowset cannot see updates and deletes made by others. For information about how this relates to the cursor types in ODBC, see the DBPROP_OTHERINSERT property. |
DBPROP_OUTPUTPARAMETERAVAILABILITY | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Output Parameter Availability The time at which output parameter values become available. One of the following: DBPROPVAL_OA_NOTSUPPORTED—Output parameters are not supported. DBPROPVAL_OA_ATEXECUTE—Output parameter data is available immediately after ICommand::Execute returns. DBPROPVAL_OA_ATROWRELEASE—If a command returns a single result that is a rowset, output parameter data is available at the time the rowset is completely released. If a command returns multiple results, output parameter data is available when IMultipleResults::GetResult returns DB_S_NORESULT or the multiple results object is completely released, whichever occurs first. Before the output parameter data is available, the consumer's bound memory is in an indeterminate state. For more information about multiple results, see "Multiple Results" in Chapter 3. |
DBPROP_OWNINSERT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Own Inserts Visible VARIANT_TRUE—The rowset can see its own inserts. That is, if a consumer of a rowset inserts a row, any consumer of the rowset can see that row the next time it fetches a set of rows containing it. This ability is independent of the transaction isolation level, because all consumers of the rowset share the same transaction. VARIANT_FALSE—The rowset cannot see rows inserted by consumers of the rowset unless the command is re-executed. For information about how this relates to the SQL_STATIC_SENSITIVITY information type in ODBC, see the DBPROP_OTHERINSERT property. |
DBPROP_OWNUPDATEDELETE | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Own Changes Visible VARIANT_TRUE—The rowset can see its own updates and deletes. That is, suppose a consumer of the rowset updates or deletes a row. If the row is released completely, any consumer of the rowset will see the update or delete the next time it fetches that row. This ability is independent of the transaction isolation level because all consumers of the rowset share the same transaction. VARIANT_FALSE—The rowset cannot see updates and deletes made by consumers of the rowset unless the command is re-executed. For information about how this relates to the SQL_STATIC_SENSITIVITY information type in ODBC, see the DBPROP_OTHERINSERT property. |
DBPROP_PERSISTENTIDTYPE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Persistent ID Type An integer specifying the type of DBID that the provider uses when persisting DBIDs for tables, indexes, and columns. This is generally the type of DBID that the provider considers to be the most permanent under schema changes and physical data reorganizations. One of the following:
DBPROPVAL_PT_NAME |
DBPROP_PREPAREABORTBEHAVIOR | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Prepare Abort Behavior How aborting a transaction affects prepared commands. One of the following: DBPROPVAL_CB_DELETE—Aborting a transaction deletes prepared commands. The application must reprepare commands before executing them. DBPROPAL_CB_PRESERVE—Aborting a transaction preserves prepared commands. The application can re-execute commands without repreparing them. |
DBPROP_PREPARECOMMITBEHAVIOR | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Prepare Commit Behavior How committing a transaction affects prepared commands. One of the following: DBPROPVAL_CB_DELETE—Committing a transaction deletes prepared commands. The application must reprepare commands before executing them. DBPROPAL_CB_PRESERVE—Committing a transaction preserves prepared commands. The application can re-execute commands without repreparing them. |
DBPROP_PROCEDURETERM | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Procedure Term A character string with the data source vendor's name for a procedure; for example, "database procedure", "stored procedure", or "procedure". This is used for building user interfaces. |
DBPROP_PROVIDERFRIENDLYNAME | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Provider Friendly Name The friendly name of the provider, for example "Microsoft OLE DB Provider for ODBC Drivers". |
DBPROP_PROVIDERNAME | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Provider Name The filename of the provider; for example, "MYPRVDR.DLL". |
DBPROP_PROVIDEROLEDBVER | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: OLE DB Version The version of OLE DB supported by the provider. The version is of the form ##.##, where the first two digits are the major version and the next two digits are the minor version. For example, OLE DB providers conforming to the 1.5 specification would return "01.50". |
DBPROP_PROVIDERVER | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Provider Version The version of the provider. The version is of the form ##.##.####, where the first two digits are the major version, the next two digits are the minor version, and the last four digits are the release version. The provider can append a description of the provider. This is the same as DBPROP_DBMSVER if the DBMS is the same as the provider; that is, if the DBMS supports OLE DB interfaces directly. It is different if the provider is separate from the DBMS, such as when the provider accesses the DBMS through ODBC. |
DBPROP_QUICKRESTART | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Quick Restart VARIANT_TRUE—IRowset::RestartPosition is relatively quick to execute. In particular, it does not reexecute the command that created the rowset. VARIANT_FALSE—RestartPosition is expensive to execute and requires reexecuting the command that created the rowset. Although the value of this property can be set to VARIANT_TRUE, the provider is not required to honor it. The reason for this is that the provider does not know what the command is at the time the property is set; in particular, the consumer can set this property and then change the command text. However, the provider can fail this property if it is never able to quickly restart the next fetch position. Thus, if a consumer successfully sets this property, it must still check this flag on the rowset to determine if the next fetch position can be quickly set. |
DBPROP_QUOTEDIDENTIFIERCASE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W R Description: Quoted Identifier Sensitivity How quoted identifiers treat case. One of the following: DBPROPVAL_IC_UPPER—Quoted identifiers in SQL are case insensitive and are stored in uppercase in system catalog. DBPROPVAL_IC_LOWER—Quoted identifiers in SQL are case insensitive and are stored in lowercase in system catalog. DBPROPVAL_IC_SENSITIVE—Quoted identifiers in SQL are case sensitive and are stored in mixed case in system catalog. DBPROPVAL_IC_MIXED—Quoted identifiers in SQL are case insensitive and are stored in mixed case in system catalog. |
DBPROP_REENTRANTEVENTS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Reentrant Events VARIANT_TRUE—The provider supports reentrancy during callbacks to the IRowsetNotify interface. The provider might not support reentrancy on all rowset methods. These methods return DB_E_NOTREENTRANT. VARIANT_FALSE—The provider does not support such reentrancy. The provider returns DB_E_NOTREENTRANT on methods called during the notification. Regardless of this flag, all providers must support IRowset::GetData and IRowset::ReleaseRows calls during notifications, so long as the columns being accessed do not include deferred columns. |
DBPROP_REMOVEDELETED | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Remove Deleted Rows If the value of this property is VARIANT_TRUE, the provider removes rows it detects as having been deleted from the rowset. That is, fetching a block of rows that formerly included a deleted row does not return a handle to that row. Which rows the rowset detects as having been deleted is determined by the DBPROP_OWNUPDATEDELETE and DBPROP_OTHERUPDATEDELETE properties; whether the rowset removes these rows is determined by this property. This property is independent of the transaction isolation level. While the transaction isolation level in some cases determines whether the rowset can detect a row as having been deleted, it has no effect on whether or not the rowset removes that row. For programmers accustomed to the cursor model in ODBC, the value of this property is always VARIANT_TRUE for rowsets implemented through dynamic cursors; that is, dynamic cursors always remove deleted rows. Whether static and keyset-driven cursors remove deleted rows depends on the value of this property. |
DBPROP_REPORTMULTIPLECHANGES | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Report Multiple Changes VARIANT_TRUE—An update or delete can affect multiple rows and the provider can detect that multiple rows have been updated or deleted. This happens when a provider cannot uniquely identify a row. For example, the provider might use the values of all the columns in the row to identify the row; if these columns do not include a unique key, an update or delete might affect more than one row. VARIANT_FALSE—An update or delete always affects a single row or the provider cannot detect whether it affects multiple rows. |
DBPROP_RESETDATASOURCE | Property group: Data Source Property set: DBPROPSET_DATASOURCE Type: VT_I4 Typical R/W: W Description: Reset Datasource A bitmask specifying the data source state to be reset. A combination of zero or more of the following: DBPROPVAL_RD_RESETALL—The provider should reset all states associated with the data source, such that the DSO appears as if it were newly initialized, with the exception that any open object is not released. DBPROP_RESETDATASOURCE is generally used by a consumer in order to reuse an existing data source object without paying the cost of uninitializing and reinitializing the DSO. |
DBPROP_RETURNPENDINGINSERTS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Return Pending Inserts VARIANT_TRUE—The methods that fetch rows, such as IRowset::GetNextRows, can return pending insert rows; that is, rows that have been inserted in delayed update mode but for which IRowsetUpdate::Update has not yet been called. VARIANT_FALSE—The methods that fetch rows cannot return pending insert rows. |
DBPROP_ROW_BULKOPS | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_14 Description: Bulk Operations A bitmask describing optimizations that a provider may take for updates to the rowset. These optimizations are usually used for things like bulk loading of a table. The following values can be specified, and are usually set as OPTIONAL properties because they are hints to the provider. Additional bits may be defined in the future; providers should be prepared to handle new bits in this bitmask by ignoring them if the property is set as optional, or returning an error if the property is set as required. DBPROPVAL_BO_NOLOG—The provider is not required to log inserts or changes to the rowset. DBPROPVAL_BO_NOINDEXUPDATE—The provider is not required to update indexes based on inserts or changes to the rowset. Any indexes need to be re-created following changes made through the rowset. DBPROPVAL_BO_REFINTEGRITY—Referential Integrity constraints do not need to be checked or enforced for changes made through the rowset. |
DBPROP_ROWRESTRICT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Row Privileges VARIANT_TRUE—Access rights are restricted on a row-by-row basis. If the rowset supports IRowsetChange, IRowsetChange::SetData can be called for some but not all rows. A rowset must never count or return a handle for a row for which the consumer does not have read access rights. VARIANT_FALSE—Access rights are not restricted on a row-by-row basis. If the rowset supports IRowsetChange, SetData can be called for any row. For more information, see DBPROP_COLUMNRESTRICT. |
DBPROP_ROWSET_ASYNCH | Property group: Rowset Property set: DBPROPSET_ROWSET Type: VT_I4 Typical R/W: R/W Description: Asynchronous Rowset Processing A bitmask specifying the asynchronous processing performed on the rowset. A combination of zero or more of the following: DBPROPVAL_ASNYCH_INITIALIZE: The rowset is initialized asynchronously. The method requesting the rowset returns immediately, but attempting to call any interface other than IConnectionPointContainer to obtain the IID_IDBAsynchNotify connection point may fail and the full set of interfaces may not be available on the rowset until asynchronous initialization has completed. DBPROPVAL_ASNYCH_SEQUENTIALPOPULATION: The rowset is sequentially asynchronously populated; requests for rows may return DB_S_ENDOFROWSET before the end of the rowset is actually reached. Asynchronously populated rows are always added to the end of the rowset. DBPROPVAL_ASNYCH_RANDOMPOPULATION: The rowset is randomly asynchronously populated; requests for rows may return DB_S_ENDOFROWSET before the end of the rowset is actually reached. Asynchronously populated rows may be inserted anywhere in the rowset. The consumer may set both DBPROPVAL_ASNYCH_SEQUENTIALPOPULATION and DBPROPVAL_ASNYCH_RANDOMPOPULATION bits to request that the rowset be asynchronously populated either sequentially or randomly. The consumer is prepared for asynchronous notifications in OnRowChange as well as from IDBAsynchStatus. Only one property is returned by the rowset; if the rowset is asynchronously populated it returns either DBPROPVAL_ASNYCH_RANDOM or DBPROPVAL_ASNYCH_SEQUENTIAL. If no bits are set (the default) the rowset is initialized and populated synchronously. All requested interfaces are available when the method requesting the rowset returns and requesting rows block until the requested number of hRows are obtained or the end of the rowset is reached. DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION: The rowset is to be populated asynchronously in the background. The rowset supports IDBAsynchStatus in order to get information about the population of the rowset or abort background population, and may support the connection point for IDBAsynchNotify to give status of the background population. DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION is implied by DBPROPVAL_ASYNCH_SEQUENTIALPOPLUATION and DBPROPVAL_ASYNCH_RANDOMPOPULATION, however, if DBPROPVAL_ASYNCH_SEQUENTIALPOPLUATION or DBPROPVAL_ASYNCH_RANDOMPOPLUATION are not also set, the rowset appears to the consumer as if it were being populated synchronously in that requesting rows will always block until the requested number of hRows are obtained or the end of the rowset is reached. DBPROPVAL_ASYNCH_PREPOPULATE: The consumer prefers to optimize for retrieving all data when the rowset is materialized. This is a hint to the provider to fetch all of the data up-front. DBPROPVAL_ASYNCH_PREPOPULATE is only a hint to the provider, the provider should never fail opening the rowset based on the setting of this flag, and need not return it to the consumer, even if the rowset is prepopulated. DBPROPVAL_ASYNCH_POPULATEONDEMAND: The consumer prefers to optimize for getting each individual request for data returned as quickly as possible. This is a hint to the provider to populate the rowset as the data is fetched. DBPROPVAL_ASYNCH_POPULATEONDEMAND is only a hint to the provider, the provider should never fail opening the rowset based on the setting of this flag, and need not return it to the consumer, even if the rowset is populated on demand. Since DBPROPVAL_ASYNCH_PREPOPULATE and DBPROPVAL_ANSYCH_POPULATEONDEMAND are just hints to the provider, if the consumer sets one or both of these properties in addition to the asychronous population properties DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION or DBPROPVAL_ASYNCH_RANDOMPOPULATION, then the provider should attempt to populate asynchronously according to DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION and DBPROPVAL_ASYNCH_RANDOMPOPULATION. If the asynchronous population specified by DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION or DBPROPVAL_ASYNCH_RANDOMPOPULATION can not be supported, the provider should fail if DBPROPOPTIONS_REQUIRED was specified for the property, or attempt to populate synchronously according to DBPROPVAL_ASYNCH_PREPOPULATE or DBPROPVAL_ASYNCH_POPULATEONDEMAND if the property was set with DBPROPOPTIONS_OPTIONAL. |
DBPROP_ROWSETCONVERSIONSONCOMMAND | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Rowset Conversions on Command VARIANT_TRUE—Callers to IConvertType::CanConvert can inquire on a command about conversions supported on rowsets generated by the command. VARIANT_FALSE—Callers can inquire on a command only about conversions supported by the command. |
DBPROP_ROWTHREADMODEL | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Row Threading Model A bitmask specifying the threading models supported by the rowset. A combination of one or more of the following:
DBPROPVAL_RT_FREETHREAD |
DBPROP_SCHEMATERM | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Schema Term The name the data source uses for a schema; for example, "schema" or "owner". This is used for building user interfaces. |
DBPROP_SCHEMAUSAGE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Schema Usage A bitmask specifying how schema names can be used in text commands. A combination of zero or more of the following: DBPROPVAL_SU_DML_STATEMENTS—Schema names are supported in all Data Manipulation Language statements. DBPROPVAL_SU_TABLE_DEFINITION—Schema names are supported in all table definition statements. DBPROPVAL_SU_INDEX_DEFINITION—Schema names are supported in all index definition statements. DBPROPVAL_SU_PRIVILEGE_DEFINITION—Schema names are supported in all privilege definition statements. |
DBPROP_SERVERCURSOR | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Server Cursor If the value of this property is set to VARIANT_TRUE with ICommandProperties::SetProperties, the cursor underlying the rowset (if any) must be materialized on the server. If the value of this property is not set to VARIANT_TRUE with ICommandProperties::SetProperties, it is up to the provider to decide where to materialize the cursor. The consumer can determine where the cursor was materialized by checking the value of this property on the rowset. |
DBPROP_SERVERDATAONINSERT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R/W Description: Server Data on Insert VARIANT_TRUE—At the time an insert is transmitted to the server (when InsertRow is called in immediate mode, or when Update is called for an inserted row in deferred update mode), the provider retrieves data from the server to update the local row cache. VARIANT_FALSE—The provider does not retrieve server values for newly inserted rows. The consumer can only retrieve data values explicitly set in the call to InsertRow, or by calls to SetData for the hRow returned by InsertRow. Consumers should be aware that setting DBPROP_SERVERDATAONINSERT is potentially expensive, and may not be supported for certain types of rowsets. |
DBPROP_SERVERNAME | Property group: Datasource Information Property set: DBPROPSET_DATASOURCEINFO Type:VT_BSTR Typical R/W:R Description: Server Name The name of the server. This may be the same as the DBPROP_INIT_DATASOURCE property if the server name is used to define the data source that the user specifies when connecting, or may be the actual name of the server if the provider connects through "friendly" data source names. |
DBPROP_SESS_AUTOCOMMITISOLEVELS | Property group: Session Property set: DBPROPSET_SESSION Type: VT_I4 Typical R/W: R/W Description: Autocommit Isolation Levels A bitmask specifying the transaction isolation level while in auto-commit mode. The values that can be set in this bitmask are the same as those that can be set for DBPROP_SUPPORTEDTXNISOLEVELS. |
DBPROP_SORTONINDEX | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BOOL Typical R/W: R Description: Sort on Index VARIANT_TRUE: The provider supports SetSortOrder only for columns contained in an index. VARIANT_FALSE: The provider does not require columns to be indexed in order to be specified in SetSortOrder, or the provider does not support SetSortOrder. This value applies only to the ability to specify a column in SetSortOrder; it does not imply whether or not nonindexed columns can be used in the order clause of a command. |
DBPROP_SQLSUPPORT | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: SQL Support A bitmask specifying the level of support for SQL. A combination of zero or more of the following: DBPROPVAL_SQL_NONE—SQL is not supported.
DBPROPVAL_SQL_ODBC_MINIMUM DBPROPVAL_SQL_ESCAPECLAUSES—The provider supports the ODBC escape clause syntax.
DBPROPVAL_SQL_ANSI92_ENTRY DBPROPVAL_SQL_ANSI89_IEF—The provider supports the ANSI89 Integrity Enhancement Facility. DBPROPVAL_SQL_SUBMINIMUM—The provider supports the DBGUID_SQL dialect and parses the command text according to SQL rules, but does not support either the minimum ODBC level nor the ANSI SQL92 Entry level. This level is not accumulative; providers that support at least the minimal ODBC Level or ANSI SQL92 Entry Level do not set this bit. OLE DB consumers can determine whether or not the provider supports the DBGUID_SQL dialect by verifying that the DBPROPVAL_SQL_NONE bit is not set. |
DBPROP_STRONGIDENTITY | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_BOOL Typical R/W: R Description: Strong Row Identity VARIANT_TRUE—The handles of newly inserted rows can be compared as specified by DBPROP_LITERALIDENTITY. VARIANT_FALSE—There is no guarantee that the handles of newly inserted rows can be compared successfully. In this case, IRowsetIdentity::IsSameRow might return DB_E_NEWLYINSERTED. A newly inserted row is defined as a row for which an insertion has been transmitted to the data source, as opposed to a pending insert row. For more information, see "Uniqueness of Rows in the Rowset" in Chapter 4. |
DBPROP_STRUCTUREDSTORAGE | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Structured Storage A bitmask specifying what interfaces the rowset supports on storage objects. If a provider can support any of these interfaces it is also required to support ISequentialStream. A combination of zero or more of the following:
DBPROPVAL_SS_ISEQUENTIALSTREAM |
DBPROP_SUBQUERIES | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Subquery Support A bitmask specifying the predicates in text commands that support subqueries. A combination of zero or more of the following:
DBPROPVAL_SQ_CORRELATEDSUBQUERIES The DBPROPVAL_SQ_CORRELATEDSUBQUERIES bit indicates that all predicates that support subqueries support correlated subqueries. |
DBPROP_SUPPORTEDTXNDDL | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Transaction DDL Whether Data Definition Language (DDL) statements are supported in transactions. One of the following: DBPROPVAL_TC_NONE—Transactions are not supported. DBPROPVAL_TC_DML—Transactions can only contain Data Manipulation Language (DML) statements. DDL statements within a transaction cause an error. DBPROPVAL_TC_DDL_COMMIT—Transactions can only contain DML statements. DDL statements within a transaction cause the transaction to be committed. DBPROPVAL_TC_DDL_IGNORE—Transactions can only contain DML statements. DDL statements within a transaction are ignored. DBPROPVAL_TC_ALL—Transactions can contain DDL and DML statements in any order. |
DBPROP_SUPPORTEDTXNISOLEVELS | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Isolation Levels A bitmask specifying the supported transaction isolation levels. A combination of zero or more of the following:
DBPROPVAL_TI_CHAOS For more information, see "Isolation Levels" in Chapter 12. |
DBPROP_SUPPORTEDTXNISORETAIN | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_I4 Typical R/W: R Description: Isolation Retention A bitmask specifying the supported transaction isolation retention levels. A combination of zero or more of the following: DBPROPVAL_TR_COMMIT_DC—The transaction may either preserve or dispose of isolation context across a retaining commit. DBPROPVAL_TR_COMMIT—The transaction preserves its isolation context (that is, it preserves its locks, if that is how isolation is implemented) across a retaining commit. DBPROPVAL_TR_COMMIT_NO—The transaction is explicitly not to preserve isolation across a retaining commit. DBPROPVAL_TR_ABORT_DC—The transaction may either preserve or dispose of isolation context across a retaining abort. DBPROPVAL_TR_ABORT—The transaction preserves its isolation context across a retaining abort. DBPROPVAL_TR_ABORT_NO—The transaction is explicitly not to preserve isolation across a retaining abort. DBPROPVAL_TR_DONTCARE—The transaction may preserve or dispose of isolation context across a retaining commit or abort. This is the default. DBPROPVAL_TR_BOTH—Isolation is preserved across both a retaining commit and a retaining abort. DBPROPVAL_TR_NONE—Isolation is explicitly not to be retained across either a retaining commit or abort. DBPROPVAL_TR_OPTIMISTIC—Optimistic concurrency control is to be used. If DBPROPVAL_TR_OPTIMISTIC is specified, then whatever isolation technology is in place (such as locking), it must be the case that other transactions' ability to make changes to the data and resources manipulated by this transaction is not in any way affected by the data read or updated by this transaction. That is, optimistic control is to be used for all data in the transaction. For more information, see ITransactionLocal::StartTransaction. |
DBPROP_TABLETERM | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: Table Term The name the data source uses for a table; for example, "table" or "file". This is used for building user interfaces. |
DBPROP_TBL_TEMPTABLE | Property group: Table Property set: DBPROPSET_TABLE Type: VT_BOOL Typical R/W: R/W Description: Temporary Table Whether the table is temporary. One of the following: VARIANT_TRUE—The table is destroyed when the session is released. VARIANT_FALSE—The table is created permanently. |
DBPROP_TRANSACTEDOBJECT | Property group: Rowset Property set: DBPROPSET_ROWSET Column? Y Type: VT_BOOL Typical R/W: R/W Description: Objects Transacted VARIANT_TRUE—Any object created on the specified column is transacted. That is, data made visible to the data source through the object can be committed with ITransaction::Commit or aborted with ITransaction::Abort. VARIANT_FALSE—Any object created on the specified column is not transacted. That is, all changes to the object are permanent once they are made visible to the data source. If this property is set on a column that does not contain an object, it is ignored. |
DBPROP_UNIQUEROWS | Property group: Rowset Property set: DBPROPSET_ROWSET Type: VT_BOOL Typical R/W: R/W Description: UniqueRows VARIANT_TRUE—Each row is uniquely identified by its column values. VARIANT_FALSE—Rows in the rowset may or may not be uniquely identified by their column values. If this property is set to VARIANT_TRUE when opening the rowset, the provider adds additional columns, if necessary, in order to ensure that each row is uniquely identified by its values. These additional columns appear at the end of the rowset, have a DBID of type DBKIND_GUID_PROPID, DBKIND_PGUID_PROPID, DBKIND_GUID_NAME, or DBKIND_PGUID_NAME, and the guid (or pguid) element is (or points to) DBCOL_SPECIALCOL. These columns are typically not displayed to the user, but are used by components such as update services to uniquely identify a row. The provider may, but is not required to, duplicate existing columns in the rowset in order to make sure key columns are included. If this property is set to VARIANT_TRUE, and the provider supports the optional IColumnsRowset metadata column DBCOLUMN_KEYCOLUMN, then the set of columns which uniquely identify the row have a value of VARIANT_TRUE in the DBCOLUMN_KEYCOLUMN column returned by IColumnsRowset. This may be a subset of the columns in the row, or all of the columns if the provider cannot determine a proper subset that uniquely identifies the row. If this property is not VARIANT_TRUE, then DBCOLUMN_KEYCOLUMN may or may not be set to VARIANT_TRUE for key columns, but there is no guarantee that the set of columns that are flagged with this value are sufficient in order to uniquely identify the row. |
DBPROP_UPDATABILITY | Property group: Rowset Property set: DBPROPSET_ROWSET Column? N Type: VT_I4 Typical R/W: R/W Description: Updatability A bitmask specifying the supported methods on IRowsetChange. A combination of zero or more of the following: DBPROPVAL_UP_CHANGE—SetData is supported. DBPROPVAL_UP_DELETE—DeleteRows is supported. DBPROPVAL_UP_INSERT—InsertRow is supported. DBPROP_UPDATABILITY should be used in conjunction with DBPROP_IRowsetChange. If DBPROP_IRowsetChange is VARIANT_TRUE and DBPROP_UPDATABILITY is not set, then it is provider-specific what methods are supported on IRowsetChange. If DBPROP_UPDATABILITY is specified, then the provider must not support any methods whose bits are not set. |
DBPROP_USERNAME | Property group: Data Source Information Property set: DBPROPSET_DATASOURCEINFO Type: VT_BSTR Typical R/W: R Description: User Name A character string with the name used in a particular database, which can be different than a login name. |