> # Supported OLE DB Property Groups

> The data provider defines the properties that apply to data sources, and properties that provide a read-only set of information about the data provider and the data source.

> To obtain a data provider's property values, a data consumer calls one of the methods listed in Table 4-3.

> Table 4-3. OLE DB Property Groups Supported by the ADO Provider
> Property Group | Method Used to Obtain Values
> --- | ---
> Data Source | IDBProperties::GetProperties
> Data Source Information | IDBProperties::GetProperties
> Initialization | IDBProperties::GetProperties
> Rowset | ICommandProperties::GetProperties IRowsetInfo::GetProperties
> Session | ISessionProperties::GetProperties

> ### Data Source Property Group

> The ADO data provider supports the following property in the DBPROP_DATASOURCE property set. For more information, refer to your Microsoft OLE DB programming documentation.

> Table 4-4. OLE DB Data Source Property Supported by the ADO Data Provider
> Property Name | Description
> --- | ---
> DBPROP_CURRENTCATALOG | The name of the current catalog. The data consumer can use the CATALOGS rowset to enumerate catalogs. If unspecified, the data provider uses the default catalog.

> ### Data Source Information Property Group

> Table 4-5 lists the properties in the DBPROPSET_DATASOURCEINFO property set supported by the ADO data provider. These properties are in the Data Source Information property group, are read-only properties, and constitute a set of static information about the data provider and data source. For more information about these properties, refer to your Microsoft OLE DB programming documentation.

> NOTE: Some values are database-specific and depend on the SequeLink service you are using. These database-specific values are not listed in the table.

> Table 4-5. OLE DB Data Source Information Properties Supported by the ADO Data Provider
> Property ID | Default Value and Description
> --- | ---
> DBPROP_ACTIVESESSIONS | VALUE=0. There is no limit to the number of sessions that can exist at one time.
> DBPROP_ASYNCTXNABORT | VALUE=VARIANT_FALSE. The data provider cannot abort transactions asynchronously.
> DBPROP_ASYNCTXNCOMMIT | VALUE=VARIANT_FALSE. The data provider cannot commit transactions asynchronously.
> DBPROP_BYREFACCESSORS | VALUE=VARIANT_FALSE. The data provider does not support the DBACCESSOR_PASSBYREF flag.
> DBPROP_CATALOGLOCATION | The value depends on the SequeLink service you are using.
> DBPROP_CATALOGTERM | Specifies the name the data source uses for a catalog. VALUE="Database"
> DBPROP_CATALOGUSAGE | A combination of zero or one or more of the following: VALUE=DBPROPVAL_CU_DML_STATEMENTS. Catalog names are supported in all Data Manipulation Language (DML) statements. VALUE=DBPROPVAL_CU_TABLE_DEFINITION. Catalog names are supported in all table definition statements. VALUE=DBPROPVAL_CU_INDEX_DEFINITION. Catalog names are supported in all index definition statements. VALUE=DBPROPVAL_CU_PRIVILEGE_DEFINITION. Catalog names are supported in all privilege definition statements.
> DBPROP_COLUMNDEFINITION | VALUE=DBPROPVAL_CD_NOTNULL. Columns can be created non-nullable.
> DBPROP_CONCATNULLBEHAVIOR | The value depends on the SequeLink service you are using.
> DBPROP_CONNECTIONSTATUS | VALUE=DBPROPVAL_CS_INITIALIZED. The data source is in an initialized state and able to communicate with the data store.
> DBPROP_DATASOURCENAME | Specifies the name of the data source used during connection. The data source is defined using the DataDirect Configuration Manager. See "Using the ADO Client" for more information about configuring ADO data sources.
> DBPROP_DATASOURCEREADONLY | VALUE=VARIANT_FALSE. The data source can be updated.
> DBPROP_DBMSNAME | Specifies the name of the data store accessed by the ADO provider. The value depends on the SequeLink service you are using.
> DBPROP_DBMSVER | Specifies the version of the DBMS that data provider is currently accessing. This value depends on the SequeLink service you are using.
> DBPROP_DSOTHREADMODEL | VALUE=DBPROP_RT_FREETHREAD. The ADO provider supports the free-threading model.
> DPROP_GROUPBY | This value depends on the SequeLink service you are using.
> DBPROP_HETEROGENEOUSTABLES | VALUE=0. Heterogeneous joins are not supported.
> DBPROP_IDENTIFIERCASE | This value depends on the SequeLink service you are using.
> DBPROP_MAXINDEXSIZE | This value depends on the SequeLink service you are using.
> DBPROP_MAXROWSIZE | VALUE=0. There is no limit on the maximum length of a single row in a table.
> DBPROP_MAXROWSIZEINCLUDESBLOB | VALUE=VARIANT_FALSE. The maximum row size does not include the length of all BLOB data.
> DBPROP_MAXTABLEINSELECT | VALUE=0. There is no limit on the number of tables allowed in the FROM clause of a Select statement.
> DBPROP_MULTIPLEPARAMSETS | VALUE=VARIANT_TRUE. The data provider supports multiple parameter sets at the same time.
> DBPROP_MULTIPLERESULTS | VALUE=DBPROPVAL_MR_SUPPORTED. The data provider supports multiple results objects.
> DBPROP_MULTIPLESTORAGEOBJECTS | VALUE=VARIANT_TRUE. The data provider supports more than one open storage object at a time.
> DBPROP_MULTITABLEUPDATE | VALUE=VARIANT_FALSE. The data provider cannot update rowsets derived from multiple tables.
> DBPROP_NULLCOLLATION | The value depends on the SequeLink service you are using.
> DBPROP_OLEOBJECTS | VALUE=DBPROPVAL_OO_BLOB. The data provider supports access to BLOBs as structured storage objects.
> DBPROP_OPENROWSETSUPPORT | VALUE=DBPROPVAL_ORS_TABLE. The data provider supports opening tables through IOpenRowset.
> DBPROP_ORDERBYCOLUMNSINSELECT | This value depends on the SequeLink service you are using.
> DBPROP_OUTPUTPARAMETERAVAILABILITY | VALUE=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.
> DBPROP_PERSISTENTIDTYPE | VALUE=DBPROPVAL_PT_NAME. The data provider uses this type of DBID when storing (persisting) DBIDs for tables and columns.
> DBPROP_PREPAREABORTBEHAVIOR | The value depends on the SequeLink service you are using.
> DBPROP_PREPARECOMMITBEHAVIOR | The value depends on the SequeLink service you are using.
> DBPROP_PROCEDURETERM | This value depends on the SequeLink service you are using.
> DBPROP_PROVIDERFRIENDLYNAME | Specifies the name of data provider, for example, SequeLink for ADO Provider.
> DBPROP_PROVIDERNAME | VALUE=slslk nn.DLL is the default, where nn is the release level of data provider.
> DBPROP_PROVIDEROLEDBVER | Refer to the README file for the supported version of OLE DB supported by the data provider.
> DBPROP_PROVIDERVER | Refer to the README file for the supported version.
> DBPROP_QUOTEDIDENTIFIERCASE | This value depends on the SequeLink service you are using.
> DBPROP_ ROWSETCONVERSIONSONCOMMAND | VALUE=VARIANT_TRUE. Callers can inquire on a command about conversions supported on rowsets generated by the command.
> DBPROP_SCHEMATERM | This value depends on the SequeLink service you are using.
> DBPROP_SCHEMAUSAGE | The value depends on the SequeLink service you are using.
> DBPROP_SERVERNAME | Specifies the name of the server.
> DBPROP_SQLSUPPORT | This value depends on the SequeLink service you are using.
> DBPROP_STRUCTUREDSTORAGE | VALUE=DBPROPVAL_SS_ISEQUENTIALSTREAM.
> DBPROP_ SUBQUERIES | A combination of zero, one, or more of the following: VALUE=DBPROPVAL_SQ_COMPARISON VALUE=DBPROPVAL_SQ_CORRELATEDSUBQUERIES. This indicates that all predicates that support subqueries support correlated subqueries. VALUE=DBPROPVAL_SQ_EXISTS VALUE=DBPROPVAL_SQ_IN VALUE=DBPROPVAL_SQ_QUANTIFIED
> DBPROP_ SUPPORTEDTXNDDL | This value depends on the SequeLink service you are using.
> DBPROP_ SUPPORTEDTXNISOLEVELS | This value depends on the SequeLink service you are using.
> DBPROP_ SUPPORTEDTXNISORETAIN | VALUE=0. The data provider supports no transaction isolation retention levels.
> DBPROP_TABLETERM | Specifies the name the data source uses for a table. VALUE="Table"
> DBPROP_USERNAME | Specifies a character string with the name used in a particular database. This can be different from the login name.

> ### Initialization Property Group

> Table 4-6 provides the supported initialization properties for the ADO provider. The properties are read/write. For more information, refer to the Microsoft OLE DB programming documentation.

> Table 4-6. Initialization Properties Supported by the ADO Data Provider
> Property Name | Default Value and Description
> --- | ---
> DBPROP_AUTH_ PASSWORD | Specifies the password to be used for connecting to the data source or enumerator. This corresponds to the Password connection attribute. See "Connecting with a Provider String" for more information about connection attributes.
> DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO | VALUE=VARIANT_FALSE. The data source object cannot store the password or other sensitive authentication information.
> DBPROP_AUTH_ USERID | Specifies the User ID to be used for connecting to the data source. This corresponds to the User ID connection attribute. See "Connecting with a Provider String" for more information about connection attributes,.
> DBPROP_INIT_CATALOG | Specifies the name of the initial or default catalog to use when connecting to the data source.
> DBPROP_INIT_ DATASOURCE | Specifies the name of the data source or enumerator to which to connect.
> DBPROP_INIT_ HWND | Specifies the window handle to use if the data source object or enumerator needs to prompt for additional information.
> DBPROP_INIT_LCID | Specifies the preferred locale ID for the consumer.
> DBPROP_INIT_ MODE | VALUE=DB_MODE_READ. The default is read-only.
> DBPROP_INIT_OLEDBSERVICES | VALUE=0. The data provider does not enable the OLE DB services.
> DBPROP_INIT_PROMPT | VALUE=DBPROMPT_COMPLETE. Display a connection dialog only if missing information is needed.
> DBPROP_INIT_ PROVIDERSTRING | Specifies a provider-specific string that contains extra initialization information. See "Connecting with a Provider String" for information about using the provider string. Consumers should use this property only for provider-specific connection information as described in Table 3-2.

> ### Rowset Property Group

> OLE DB data consumers can request certain properties to be satisfied by the rowsets that result from an OpenRowset or ICommand::Execute call. Common properties include the set of interfaces to be supported by the resulting rowset.

> The ADO data provider supports the IRowsetIdentity interface. This allows the data consumer to determine when two row handles represent the same underlying data.

> Table 4-7 provides the properties that are included in the ADO provider properties group. The table shows the initial default values. Some of these properties can be changed at the Command level (through ICommandProperties->SetProperties) or Session level (through IOpenRowset). The resulting rowset will contain different values for these properties.

> Table 4-7. Rowset Properties Supported by the ADO Data Provider
> Property Name | Default Value and Description
> --- | ---
> DBPROP_ABORTPRESERVE | The value depends on the SequeLink service you are using.
> DBPROP_ACCESSORDER | VALUE=DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS Columns bound as storage objects can only be accessed in sequential order as determined by the column ordinal.
> DBPROP_BLOCKINGSTORAGEOBJECTS | VALUE=VARIANT_FALSE. Instantiated storage objects do not prevent the use of other methods.
> DBPROP_BOOKMARKINFO | VALUE=DBPROPVAL_BI_CROSSROWSET (if bookmarks are supported) VALUE=0 (if bookmarks are not supported)
> DBPROP_BOOKMARKS | VALUE=FALSE. The rowset does not support bookmarks.
> DBPROP_BOOKMARKSKIPPED | VALUE=VARIANT_FALSE. GetRowsAt, GetApproximatePosition, or FindNextRow returns DB_E_BADBOOKMARK.
> DBPROP_BOOKMARKTYPE | VALUE=DBPROPVAL_BMK_NUMERIC. The bookmark type is numeric.
> DBPROP_CANFETCHBACKWARDS | VALUE=VARIANT_FALSE. cRows must be non-negative.
> DBPROP_CANHOLDROWS | VALUE=VARIANT_FALSE. The rowset might require pending changes to be transmitted to the data store before fetching additional rows.
> DBPROP_CANSCROLLBACKWARDS | VALUE=VARIANT_FALSE. IRowsOffset must be non-negative.
> DBPROP_CHANGEINSERTEDROWS | VALUE=VARIANT_FALSE. DeleteRows returns a status of DBROWSTATUS_E_NEWLYINSERTED for newly inserted rows, and SetData returns DB_E_NEWLYINSERTED.
> DBPROP_COLUMNRESTRICT | Specifies whether access rights are restricted on a column-by-column basis. VALUE=VARIANT_TRUE. Access rights are restricted on a column-by-column basis. VALUE=VARIANT_FALSE. Access rights are not restricted on a column-by-column basis.
> DBPROP_COMMITPRESERVE | The value is specific to the SequeLink Server you are using.
> DBPROP_DELAYSTORAGEOBJECTS | VALUE=VARIANT_FALSE. Storage objects are used in immediate update mode.
> DBPROP_IAccessor | VALUE=VARIANT_TRUE
> DBPROP_IColumnsInfo | VALUE=VARIANT_TRUE
> DBPROP_IColumnsRowset | VALUE=VARIANT_TRUE
> DBPROP_IConvertType | VALUE=VARIANT_TRUE
> DBPROP_IMultipleResults | VALUE=VARIANT_FALSE
> DBPROP_IRowset | VALUE=VARIANT_TRUE
> DBPROP_IRowsetChange | VALUE=VARIANT_TRUE
> DBPROP_IRowsetIdentity | VALUE=VARIANT_FALSE
> DBPROP_IRowsetInfo | VALUE=VARIANT_TRUE
> DBPROP_IRowsetLocate | VALUE=VARIANT_TRUE
> DBPROP_IRowsetRefresh | VALUE=VARIANT_FALSE
> DBPROP_IRowsetScroll | VALUE=VARIANT_FALSE
> DBPROP_IRowsetUpdate | VALUE=VARIANT_FALSE
> DBPROP_ISequentialStream | VALUE=VARIANT_FALSE
> DBPROP_ISupportErrorInfo | VALUE=VARIANT_TRUE
> DBPROP_IMMOBILEROWS | VALUE=VARIANT_TRUE. The rowset will not reorder inserted or updated rows.
> DBPROP_LITERALBOOKMARKS | VALUE=VARIANT_FALSE. Bookmarks can only be compared with IRowsetLocate::Compare.
> DBPROP_LITERALIDENTITY | VALUE=VARIANT_FALSE.`` The consumer must call IRowsetIdentity::IsSameRow to determine whether two row handles point to the same row.
> DBPROP_LOCKMODE | VALUE=DBPROPVAL_LM_NONE. The data provider is not required to lock rows to ensure successful updates.
> DBPROP_MAXOPENROWS | Specifies the maximum number of rows that can be active at the same time. VALUE=4096
> DBPROP_MAXPENDINGROWS | VALUE=0. There is no limit on the number of rows that can have pending changes at the same time.
> DBPROP_MAXROWS | VALUE=0. There is no limit on the number of rows that can be returned in a rowset.
> DBPROP_MEMORYUSAGE | VALUE=0. There is no limit on the amount of memory that the rowset can use.
> DBPROP_OTHERINSERT | VALUE=VARIANT_FALSE. The rowset cannot see updates and deletes made by others.
> DBPROP_OTHERUPDATEDELETE | VALUE=VARIANT_FALSE. The rowset cannot see updates and deletes made by others.
> DBPROP_OWNINSERT | VALUE=VARIANT_FALSE. The rowset cannot see rows inserted by consumers of the rowset unless the command is executed again.
> DBPROP_OWNUPDATEDELETE | VALUE=VARIANT_FALSE. The rowset cannot see updates and deletes made by consumers of the rowset unless the command is executed again.
> DBPROP_QUICKRESTART | VALUE=VARIANT_TRUE. IRowset::RestartPosition is not expensive to execute and does not execute the command that created the rowset again.
> DBPROP_REENTRANTEVENTS | VALUE=VARIANT_TRUE. The data provider supports reentrancy during callbacks to the IRowsetNotify interface.
> DBPROP_REMOVEDELETED | VALUE=VARIANT_FALSE. Static cursors do not remove deleted rows.
> DBPROP_REPORTMULTIPLECHANGES | VALUE=VARIANT_FALSE. An update or delete always affects a single row or data provider cannot detect whether it affects multiple rows.
> DBPROP_RETURNPENDINGINSERTS | VALUE=VARIANT_FALSE. The methods that fetch rows cannot return pending insert rows.
> DBPROP_ROWRESTRICT | VALUE=VARIANT_FALSE. Access rights are not restricted on a row-by-row basis.
> DBPROP_ROWTHREADMODEL | VALUE=DBPROPVAL_RT_FREETHREAD. The data provider uses the free-threaded model.
> DBPROP_SERVERCURSOR | VALUE=VARIANT_FALSE. The data provider determines where to locate the cursor.
> DBPROP_STRONGIDENTITY | VALUE=VARIANT_FALSE. There is no guarantee that the handles of newly inserted rows can be compared successfully.
> DBPROP_TRANSACTEDOBJECT | VALUE=VARIANT_FALSE. Any object created on the specified column is not transacted.
> DBPROP_UNIQUEROWS | VALUE=VARIANT_FALSE. Rows in the rowset may or may not be uniquely identified by their column values.
> DBPROP_UPDATABILITY | A combination of zero or one or more of the following: Value=DBPROPVAL_UP_CHANGE. SetData is supported. Value=DBPROPVAL_UP_DELETE. DeleteRows is supported. Value=DBPROPVAL_UP_INSERT. InsertRow is supported.

> ### Session Property Group

> Table 4-8 lists the properties the ADO data provider supports in the DBPROPSET_SESSION property set. For more information, refer to your Microsoft OLE DB programming information.

> Table 4-8. Session Properties Supported by the ADO Data Provider
> Property Name | Default Value and Description
> --- | ---
> DBPROP_SESS_ AUTOCOMMITISOLEVELS | Specifies the transaction isolation level while in auto-commit mode. VALUE=NULL