Data Source Information Properties

The DBPROPSET_DATASOURCEINFO property set contains the following properties. All of these properties are in the DATA SOURCE INFORMATION property group. These properties are read-only in this provider and constitute a set of static information about the provider and data source.

Property ID Description
DBPROP_ACTIVESESSIONS Type: VT_I4

Typical R/W: R Only

Description: Active Sessions

Specifies the maximum number of sessions that can exist at the same time. If this property is set to zero, there is no limit.

DBPROP_ASYNCTXNABORT Type: VT_BOOL

Typical R/W: R only

Description: Asynchronous Abort

Specifies whether asynchronous abortion of transactions is allowed.

DBPROPSET_ASYNCTXNCOMMIT Type: VT_BOOL

Typical R/W: R only

Description: Asynchronous Commit

Specifies whether asynchronous commitment of transactions is allowed.

DBPROPSET_BYREFACCESSORS Type: VT_BOOL

Typical R/W: R Only

Description: Pass By Ref Accessors

Specifies whether the provider supports the DBACCESSOR_PASSBYREF flag in IAccessor::CreateAccessor. This applies to both row and parameter accessors.

DBPROP_CATALOGLOCATION Type: VT_I4

Typical R/W: R Only

Description: Catalog Location

Specifies the position in a text command of a catalog name in a qualified table name, that is:

  • DBPROPVAL_CL_START, which indicates the catalog name is at the start of the fully qualified table name.

  • DBPROPVAL_CL_END – The catalog name is at the end of the fully qualified name.
DBPROP_CATALOGTERM Type: VT_BSTR

Typical R/W: R only

Description: Catalog Term

Specifies the name that the data source uses for a catalog, for example, “catalog,” “database,” or “directory.”. This is used to build user interfaces.

DBPROPSET_CATALOGUSAGE Type: VT_I4

Typical R/W: R Only

Description: Catalog Usage

A bitmask specifying how catalog names can be used in text commands, that is, zero or more of the following:

  • DBPROPVAL_CU_DML_STATEMENTS, which indicates that catalog names are supported in all Data Manipulation Language statements.

  • DBPROPVAL_CU_TABLE_DEFINITION, which indicates that catalog names are supported in all table definition statements.

  • DBPROPVAL_CU_INDEX_DEFINITIONS, which indicates that catalog names are supported in all index definition statements.

  • DBPROPVAL_CU_PRIVILEGE_DEFINITION, which indicates that catalog names are supported in all privilege definition statements.
DBPROPSET_COLUMNDEFINITION Type: VT_I4

Typical R/W: R Only

Description: Column Definition

A bitmask defining the valid clauses for the definition of a column, that is:

  • DBRPOPVAL_CD_NOTNULL, which indicates that columns can be created non-nullable.
DBPROP_CONCATNULLBEHAVIOR Type: VT_I4

Typical R/W: R only

Description: Null ConcatenationBehavior

Specifies how the data source handles concatenation of null valued and non-null valued character data type columns, that is:

  • DBPROPVAL_CB_NULLwhich indicates that the result is null valued.

  • DBPROPVAL_CB_NON_NULL, which indicates that the result is the concatenation of the non-null – valued column or columns.
DBRPOP_DATASOURCENAME Type: VT_BSTR

Typical R/W: R only

Description: Data Source Name

The name of the data source. This can be used during the connection process.

DBPROP_DATASOURCEREADONLY Type: VT_BOOL

Typical R/W: R Only

Description: Read-Only Data Source

This can be:

  • VARIANT_TRUE, which indicates that the data source is read-only.

  • VARIANT_FALSE, which indicates that the data source is updatable.
DBPROP_DBMSNAME Type: VT_BSTR

Typical R/W: R only

Description: DBMS Name

Specifices the name of the product accessed by the provider.

DBPROP_DBMSVER Type: VT_BSTR

Typical R/W: R only

Description: DBMS Version

Specifies the version of the product accessed by the provider.

DBPROP_DSOTHREADMODEL Type: VT_I4

Typical R/W: R only

Description: Data Source Object Threading Model

Specifies the threading model of the data source object, that is, one or more of:

  • DBPROPVAL_RT_FREETHREAD

  • DBPROPVAL_RT_APTMTTHREAD

  • DBPROPVAL_RT_SINGLETHREAD
DBPROP_GROUPBY Type: VT_I4

Typical R/W: R only

Description: Group By Support

Specifies the relationship between the columns in a GROUP BY clause and the nonaggregated columns on a select list, that is:

  • DBPROPVAL_GB_EQUALS_SELECT, which indicates that the GROUP BY clause must contain all nonaggregated columns on the select list.

  • DBPROPVAL_GB_CONTAINS_SELECTwhich indicates that the GROUP BY clause must contain all nonaggregated columns in the select list. It can also contain columns that are not on the select list.

  • DBPROPVAL_GB_NO_RELATION, which indicates that the columns in the GROUP BY clause and on the select list are not related. The meaning of nongrouped, nonaggregated columns on the select list is data source–dependent.
DBPROP_HETEROGENEOUSTABLES Type: VT_I4

Typical R/W: R Only

Description: Heterogeneous Table Support

Specifies a bitmask that indicates whether the provider can join tables from different catalogs or providers, that is, zero or more of:

  • DBPROPVAL_HT_DIFFERENT_CATALOGS

  • DBPROPVAL_HT_DIFFERENT_PROVIDERS
DBPROP_IDENTIFIERCASE Type: VT_I4

Typical R/W: R only

Description: Identifier Case Sensitivity

Specifies how identifiers respond to case, that is:

  • DBPROPVAL_IC_UPPER, which indicates that identifiers in SQL are case insensitive and are stored in uppercase in system catalog.

  • DBPROPVAL_IC_LOWER, which indicates that identifiers in SQL are case insensitive and are stored in lowercase in system catalog.

  • DBPROPVAL_IC_SENSITIVE, which indicates that identifiers in SQL are case sensitive and are stored in mixed case in system catalog.

  • DBPROPVAL_IC_MIXED, which indicates that identifiers in SQL are case insensitive and are stored in mixed case in system catalog.
DBPROP_MAXINDEXSIZE Type: VT_I4

Typical R/W: R Only

Description: Maximum Index Size

Specifies the maximum number of bytes allowed in the combined columns of an index. If there is no limit specified or if the limit is unknown, this value defaults to zero.

DBPROP_MAXOPENCHAPTERS Type: VT_I4

Typical R/W: R only

Description: Maximum Open Chapters

Specifies the maximum number of chapters that can be open at any time.

If a chapter must be released before a new chapter can be opened, set this value to one. If the provider does not support chapters, set this value to zero.

DBPROP_MAXROWSIZE Type: VT_I4

Typical R/W: R only

Description: Maximum Row Size

Specifies the maximum length of a single row in a table. If there is no specified limit or the limit is unknown, this value is zero.

DBPROP_MAXROWSIZEINCLUDESBLOB Type:  VT_BOOL

Typical R/W: R Only

Description: Maximum Row Size Includes BLOB

Specifies values as either of:

  • VARIANT_TRUE, which indicates that the maximum row size returned for the DBPROP_MAXROWSIZE property includes the length of all BLOB data.

  • VARIANT_FALSE, which indicates that the maximum row size returned for the DBPROP_MAXROWSIZE property does not include the length of all BLOB data.
DBPROP_MAXTABLESINSELECT Type: VT_I4

Typical R/W: R Only

Description: Maximum Tables in SELECT

Specifies 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 zero.

DBPROP_MULTIPLEPARAMSETS Type: VT_BOOL

Typical R/W: R Only

Description: Multiple Parameter Sets

Specifies values as either of:

  • VARIANT_TRUE, which indicates that the provider supports multiple parameter sets.

  • VARIANT_FALSE, which indicates that the provider does not support multiple parameter sets.
DBPROP_MULTIPLERESULTS Type:  VT_I4

Typical R/W: R only

Description: Multiple Results

Specifies a bitmask that indicates whether the provider supports multiple result objects and what restrictions it places on these objects, that is, zero or more of:

  • DBPROPVAL_MR_SUPPORTED, which indicates that the provider supports multiple result objects.

  • DBPROPVAL_MR_CONCURRENT, which indicates that more than one rowset created by the same multiple results object can exist concurrently.

If this bitmask 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.

DBPROP_MULTIPLESTORAGEOBJECTS Type: VT_BOOL

Typical R/W: R Only

Description: Multiple Storage Objects

Specifies values as either of:

  • VARIANT_TRUE, which indicates that the provider supports multiple open storage objects at the same time.

  • VARIANT_FALSE, which indicates that 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 the rows or columns in which the objects are constructed.
DBPROP_MULTIPLEUPDATE Type: VT_BOOL

Typical R/W: R only

Description: Multiple Table Update

Specifies values as either of:

  • VARIANT_TRUE, which indicates that the provider can update rowsets derived from multiple tables.

  • VARIANT_FALSE, which indicates that the provider cannot update rowsets derived from multiple tables.
DBPROP_NULLCOLLATION Type: VT_I4

Typical R/W: R only

Description: NULL Collation Order

Specifies position of null values on a sorted list, that is:

  • DBPROPVAL_NC_END, which indicates that null values are sorted at the end of the list, regardless of the sort order.

  • DBPROPVAL_NC_HIGH, which indicates that null values are sorted at the high end of the list.

  • DBPROPVAL_NC_LOW, which indicates that null values are sorted at the low end of the list.

  • DBPROPVAL_NC_START, which indicates that null values are sorted at the start of the list, regardless of the sort order.
DBPROP_OLEOBJECTS Type: VT_I4

Typical R/W: R only

Description: OLE Object Support

Specifies a bitmask that indicates the ways in which the provider supports access to BLOBs and OLE objects stored in columns, that is, zero or more of:

  • DBPROPVAL_OO_BLOB, which indicates that the provider supports access to BLOBs as structured objects. The consumer determines what interfaces are supported through DBPROP_STRUCTUREDSTORAGE.

  • DBPROPVAL_OO_IPERSIST, which indicates that the provider supports access to OLE objects through IPersistStream, IPersistStreamInit, or IPersistStorage.
DBPROP_ORDERBYCOLUMNSINSELECT Type: VT_I4

Typical R/W: R Only

Description: Order By Columns In Select List

Specifies values as either of:

  • VARIANT_TRUE, which indicates that columns in an ORDER BY clause must be on the select list.

  • VARIANT_FALSE, which indicates that columns in an ORDER BY clause are not required to be on the select list.
DBPROP_OUTPUTPARAMETERAVAILABILITY Type: VT_I4

Typical R/W: R only

Description: Output Parameter Availability

Specifies the time at which output parameter values become available, that is:

  • DBPROPVAL_OA_NOTSUPPORTED, which indicates that output parameters are not supported.

  • DBPROPVAL_OA_ATEXECUTE, which indicates that output parameter data is available immediately after ICommand::Execute returns.

  • DBPROPVAL_OA_ATROWRELEASE, which indicates that, if a command returns a single result that is a rowset, output parameter data is available when the release of this rowset is complete. If a command returns multiple results, output parameter data is available as soon as either IMultipleResults::GetResult returns DB_S_NORESULT, or the release of the multiple results object is complete. Before the output parameter data is available, the consumer’s bound memory is in an indeterminate state.
DBPROP_PERSISTIDTYPE Type: VT_I4

Typical R/W: R only

Description: Persistent ID Type

Specifies an integer that indicates the type of DBID that the provider uses when persisting DBIDs for tables, indexes, and columns. This is usually the type of DBID that the provider considers to be the most permanent under schema changes and physical data reorganizations.

The value is one of:

  • DBPROPVAL_PT_GUID_NAME

  • DBPROPVAL_PT_GUID_PROPID

  • DBPROPVAL_PT_NAME

  • DBRPOPVAL_PT_GUID
DBPROP_PREPAREABORTBEHAVIOR Type: VT_I4

Typical R/W: R only

Description: Prepare Abort Behavior

Specifies how aborting a transaction affects prepared commands, that is:

  • DBPROPVAL_CB_DELETE, which indicates that aborting a transaction deletes prepared commands. The application must reprepare commands before executing them.

  • DBPROPVAL_DB_PRESERVE, which indicates that aborting a transaction preserves prepared commands. The application can execute commands without repreparing them.
DBPROP_PROCEDURETERM Type: VT_BSTR

Typical R/W: R only

Description: Procedure Term

Specifies a character string with the data source vendor’s name for a procedure, for example, “database procedure,” “stored procedure,” or “procedure.” This is used to build user interfaces.

DBPROP_PROVIDERNAME Type: VT_BSTR

Typical R/W: R only

Description: Provider Name

Specifies the file name of the provider.

DBPROP_PROVIDEROLEDBVER Type: VT_BSTR

Typical R/W: R only

Description: OLE DB Version

Returns the version of OLE DB supported by the provider. The version is returned in the format ##.## ####, 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.

DBPROP_QUOTEDIDENTIFIERCASE Type: VT_I4

Typical R/W: R only

Description: Quoted Identifier Sensitivity

Specifies how quoted identifiers treat case, that is:

  • DBPROPVAL_IC_UPPER, which indicates that identifiers quoted in SQL are case insensitive and are stored in uppercase in system catalog.

  • DBPROPVAL_IC_LOWER, which indicates that identifiers quoted in SQL are case insensitive and are stored in lowercase in system catalog.

  • DBPROPVAL_IC_SENSITIVE, which indicates that identifiers quoted in SQL are case sensitive and are stored in mixed case in system catalog

  • DBPROPVAL_IC_MIXED, which indicates that identifiers quoted in SQL are case insensitive and are stored in mixed case in system catalog.
DBPROP_ROWSETCONVERSIONCOMMAND Type: VT_BOOL

Typical R/W: R only

Description: Rowset Conversions On Command

Specifies values as either of:

  • VARIANT_TRUE, which indicates that callers to IConvertType::CanConvert can inquire ona command about conversions supported on rowsets generated by the command.

  • VARIANT_FALSE, which indicates that callers can inquire on a command only about conversions supported by the command.
DBPROP_SCHEMATERM Type: VT_BSTR

Typical R/W: R only

Description: Schema Term

Specifies the name the data source uses for a schema, for example, “schema” or “owner.”. This is used to build user interfaces.

DBPROP_SCHEMAUSAGE Type: VT_I4

Typical R/W: R only

Description: Schema Usage

Specifies a bitmask that indicates how schema names can be used in text commands, that is, zero or more of:

  • DBPROPVAL_SU_DML_STATEMENTS, which indicates that schema names are supported in all Data Manipulation Language statements.

  • DBPROPVAL_SU_TABLE_DEFINITION, which indicates that schema names are supported in all table definition statements.

  • DBPROPVAL_SU_INDEX_DEFINITION, which indicates that schema names are supported in all index definition statements.

  • DBPROPVAL_SU_PRIVILEGE_DEFINITION, which indicates that schema names are supported in all privilege definition statements.
DBPROP_SQLSUPPORT Type: VT_I4

Typical R/W: R only

Description: SQL Support

Specifies a bitmask that indicates the level of support for SQL, that is, zero or more of:

  • DBPROPVAL_SQL_NONE, which indicates that SQL is not supported.

The following levels correspond to the levels of SQL conformance defined in ODBC version 2.5. These levels are cumulative; that is, if the provider supports one level, it also supports all lower levels.

  • DBPROPVAL_SQL_ODBC_MINIMUM

  • DBPROPVAL_SQL_ODBC_CORE

  • DBPROPVAL_SQL_ODBC_EXTENDED

The following levels correspond to the levels in ANSI SQL 92. These levels are cumulative; that is, if the provider supports one level, it also supports all lower levels.

  • DBPROPVAL_SQL_ANSI92_ENTRY

  • DBPROPVAL_SQL_FIPS_TRANSITIONAL

  • DBPROPVAL_SQL_ANSI92_INTERMEDIATE

  • DBPROPVAL_SQL_ANSI92_FULL

  • DBPROPVAL_SQL_ANSI89_IEF, which indicates that the provider supports the ANSI 89 Integrity Enhancement Facility.
DBPROP_STRUCTUREDSTORAGE Type: VT_I4

Typical R/W: R only

Description: Structured Storage

Specifies a bitmask that indicates which interfaces on a storage object are supported by the rowset, that is, zero or more of:

  • DBPROPVAL_SS_ISEQUENTIALSTREAM

  • DBPROPVAL_SS_ISTREAM

  • DBPROPVAL_SS_ISTORAGE

  • DBPROPVAL_SS_ILOCKBYTES
DBPROP_SUBQUERIES Type: VT_I4

Typical R/W: R only

Description: Subquery Support

Specifies a bitmask that indicates the predicates in text commands that support subqueries, that is, zero or more of:

  • DBPROPVAL_SQ_CORRELATED SUBQUERIES

  • DBPROPVAL_SQ_COMPARISON

  • DBPROPVAL_SQ_EXISTS

  • DBPROPVAL_SQ_IN

  • DBPROPVAL_SQ_QUANTIFIED

The DBPROPVAL_SQ_CORRELATED SUBQUERIES bit indicates that all predicates that support subqueries support correlated subqueries.

DBPROP_SUPPORTEDTXNDDL Type: VT_I4

Typical R/W: R only

Description: Transaction DDL

Specifies whether Data Definition Language (DDL) statements are supported in transactions, that is:

  • DBPROPVAL_TC_NONE, which indicates that transactions are not supported.

  • DBPROPVAL_TC_DML, which indicates that transactions can only contain Data Manipulation Language (DML) statements. DDL statements within a transaction cause an error.

  • DBPROPVAL_TC_DDL_COMMIT, which indicates that transactions can only contain DML statements. DDL statements within a transaction cause the transaction to be committed.

  • DBPROPVAL_TC_DDL_IGNORE, which indicates that transactions can only contain DML statements. DDL statements within a transaction are ignored.

  • DBPROPVAL_TC_ALL, which indicates that transactions can contain DDL and DML statements in any order.
DBPROP_SUPPORTEDTXNISOLEVELS Type: VT_I4

Typical R/W: R only

Description: Isolation Levels

Specifies a bitmask that indicates the supported transaction isolation levels, that is, zero of more of:

  • DBPROPVAL_TI_CHAOS

  • DBPROPVAL_TI_READUNCOMMITTED

  • DBPROPVAL_TI_BROWSE

  • DBPROPVAL_TI_CURSORSTABILITY

  • DBPROPVAL_TI_READCOMMITTED

  • DBPROPVAL_TI_REPEATABLEREAD

  • DBPROPVAL_TI_SERIALIZABLE

  • DBPROPVAL_TI_ISOLATED
DBPROPVAL_SUPPORTEDTXNISORETAIN Type: VT_I4

Typical R/W: R only

Description: Isolation Retention

Specifies a bitmask that indicates the supported transaction isolation retention levels, that is, zero or more of:

  • DBPROPVAL_TR_COMMIT_DC, which indicates that the transaction preserves its isolation across a retaining commit.

  • DBPROPVAL_TR_COMMIT_NO, which indicates that the transaction cannot preserve its isolation across a retaining commit.

  • DBPROPVAL_TR_ABORT_DC, which indicates that the transaction may either preserve or dispose of its isolation across a retaining abort.

  • DBPROPVAL_TR_ABORT, which indicates that the transaction preserves its isolation across a retaining abort.

  • DBPROPVAL_TR_ABORT_NO, which indicates that the transaction cannot preserve its isolation across a retaining abort.

  • DBPROPVAL_TR_DONTCARE, which indicates that the transaction can preserve or dispose of its isolation across a retaining commit or abort. This is the default.

  • DBPROPVAL_TR_BOTH, which indicates that the transaction preserves its isolation across both a retaining commit and a retaining abort.

  • DBPROPVAL_TR_NONE, which indicates that the transaction cannot preserve its isolation across either a retaining commit or abort.

  • DBPROPVAL_TR_OPTIMISTIC, which indicates that optimistic concurrency control is to be used. If DBPROPVAL_TR_OPTIMISTIC is specified, whatever isolation technology is in place in this transaction (such as locking) must not affect the ability of other transactions to make changes to the data and resources that have been manipulated by this transaction. That is, optimistic control is to be used for all data in the transaction.
DBPROP_TABLETERM Type: VT_BSTR

Typical R/W: R only

Description: Table Term

Specifies the name the data source uses for a table.