Supported OLE DB Interfaces
Important
This feature will be removed in a future version of Windows. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Instead, write a fully functional OLE DB provider using the native OLE DB interfaces.
Data Source Object
Interface |
Description |
---|---|
IConnectionPointContainer |
When implemented on an object, makes the object connectable and expresses the existence of outgoing interfaces on the object. Through this interface a client can either locate a specific connection point for one IID or enumerate the connection points that exist. This is a COM interface, not an OLE DB interface. For more information, refer to the OLE DB Programmer's Reference. |
IDBAsynchStatus |
Polls for status or cancels the asynchronous operation on the object being initialized, generated, or populated. |
IDBCreateSession |
Used by consumers to create a new session on a data source object. |
IDBInitialize |
Initializes a data source object or enumerator. |
IDBProperties |
Sets and gets the values of properties on the data source object or enumerator and gets all information about all properties supported by the provider. |
IPersist |
An interface that is implemented by object applications and used by container applications to get the CLSID associated with an object. |
ISupportErrorInfo |
Indicates whether a specific interface can return COM and OLE DB error objects. |
Session Object
Interface |
Description and Notes |
---|---|
IGetDataSource |
Mandatory interface on the session for obtaining a data source object. |
IOpenRowset |
Enables consumers to open and work directly with individual tables or indexes in a data source. When using IOpenRowset::OpenRowset against an OLE DB provider written with the OSP Toolkit, you can issue OpenRowset only once for each OSP. The second call will fail with a status code of E_FAIL. If no data member is specified on IOpenRowset::OpenRowset ? because no registration settings have been entered, or because no data source initialization property has been set ? Msdaosp.dll returns the error DB_E_NOTABLE, which indicates that the table does not exist in the current data source. |
ISessionProperties |
Performs row updates, deletes, and inserts. |
ISupportErrorInfo |
Indicates whether a specific interface can return Automation and OLE DB error objects. |
Rowset Object
Interface |
Description |
---|---|
IAccessor |
Provides methods for accessor management. |
IColumnsInfo |
Exposes information about columns of a rowset. (See Note below.) |
IConnectionPointContainer |
When implemented on an object, makes the object connectable and expresses the existence of outgoing interfaces on the object. Through this interface a client can either locate a specific connection point for one IID or enumerate the connection points that exist. This is a COM interface, not an OLE DB interface. For more information, refer to the OLE DB Programmer's Reference. |
IConvertType |
Provides information about the availability of type conversions on a rowset. |
IDBAsynchStatus |
Polls for status or cancels the asynchronous operation on the object being initialized, generated, or populated. |
IRowset |
Provides methods for fetching rows sequentially, getting the data from those rows, and managing the rows. |
IRowsetChange |
Performs row updates, deletes, and inserts. |
IRowsetFind |
Allows consumers to find a row within the rowset matching a specified value. |
IRowsetIdentity |
Indicates that row instance identity is implemented on the rowset and enables testing for row identity. |
IRowsetInfo |
Provides information about a rowset. |
IRowsetLocate |
Fetches arbitrary rows of a rowset. |
IRowsetScroll |
Enables consumers to fetch rows at approximate positions in the rowset. |
ISupportErrorInfo |
Indicates whether a specific interface can return Automation and OLE DB error objects. |
Note
The OSP implementation of the IColumnsInfo::GetColumnInfo method initializes DBCOLUMNSINFO structures as follows.
For the bookmark column:
Column ID (DBID) ? As described in the section Bookmarks, where DBID.eKind is set to DBKIND_GUID_PROPID
wType ? DBTYPE_I4 for a 32-bit OS, or DBTYPE_I8 for a 64-bit OS
uColumnSize ? DBBKMARK, which is 4 for a 32-bit OS, or 8 for a 64-bit OS
bPrecision ? 10
bScale ? ~0 (all ones; no scale)
dwFlags ? DBCOLUMNFLAGS_ISBOOKMARK | DBCOLUMNFLAGS_ISFIXEDLENGTH | DBCOLUMNFLAGS_MAYDEFER
For all other columns:
iOrdinal ? A number starting from 1
DBID.eKind ? DBKIND_PROPID
DBID.uName.ulPropid ? A number equal to 100+iOrdinal
wType ? DBTYPE_VARIANT
ulColumnSize ? The size of a VARIANT (16)
bPrecision ? ~0 (all ones; no precision)
bScale ? ~0 (all ones; no scale)
dwFlags ? DBCOLUMNFLAGS_ISFIXEDLENGTH | DBCOLUMNFLAGS_MAYDEFER | DBCOLUMNFLAGS_MAYBENULL | DBCOLUMNFLAGS_ISNULLABLE
If the OSP getRWStatus method reports the column is not OSPRW_READONLY, dwFlags is also marked DBCOLUMNFLAGS_WRITE.
If the column is a chapter column, wType is set to DBTYPE_HCHAPTER, dwFlags is marked DBCOLUMNFLAGS_ISCHAPTER, and ulColumnSize is set to the size of a pointer to IUnknown.
The column name is stored in **ppStringsBuffer.
Notification Interfaces for Rowset Object
Interface |
Description |
---|---|
IDBAsynchNotify |
The callback interface that a consumer must support to be notified of the progress of asynchronous operations such as initializing a data source object or opening or populating a rowset. |
IRowsetNotify |
The callback interface that a consumer must support to connect to local notifications provided by a rowset. |