OLE DB consumers can choose their level of interoperability with OLE DB providers. Consumers can write to either a specific provider, in which case they know the functionality of the provider at design time, or to consume generic providers. To consume generic providers, the consumer may do one of the following:
The following table describes the minimum level of functionality that a consumer can be expected to support when talking to any OLE DB provider. This functionality is either implemented directly by the provider, or on behalf of the provider by common service components.
Object | Interface Behavior |
DataSource | IConnectionPointContainer for: IDBAsynchNotify |
IDataSource 1 | |
IDBAsynchStatus | |
IDBCreateSession | |
IDBInitialize | |
IDBProperties | |
IPersist | |
ISupportErrorInfo | |
DataSource Behavior | DBPROP_INIT_PROMPT |
Session | IGetDataSource |
IOpenRowset | |
ISessionProperties | |
ITransactionLocal 3 | |
Rowset | IAccessor |
IColumnsInfo | |
IConnectionPointContainer for: IDBAsynchNotify, IRowsetNotify | |
IConvertType | |
IDBAsynchNotify | |
IDBAsynchStatus | |
IRowset | |
IRowsetChange 2 | |
IRowsetFind | |
IRowsetIdentity | |
IRowsetInfo | |
IRowsetLocate | |
IRowPosition1 | |
IRowsetScroll | |
ISupportErrorInfo | |
Rowset Behavior | DBPROP_CANHOLDROWS |
DBPROP_CANFETCHBACKWARDS | |
DBPROP_CANSCROLLBACKWARDS | |
DBPROP_COMMITPRESERVE 3 | |
DBPROP_REMOVEDELETED 2 | |
DBPROP_OWNUPDATEDELETE 2 | |
DBPROP_OWNINSERT 2 |
(1) These interfaces are always supported by common components in the SDK. They are never implemented directly by providers.
(2) Minimal level of support for providers wanting to expose update capability. Providers not supporting this functionality are treated as read-only by generic consumers.
(3) Minimal level of support for providers wanting to support transactions to general consumers.