Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. |