OLE DB 提供程序模板参考

OLE DB 提供程序模板的类和接口可分为以下类别。 参考材料还包括有关用于 OLE DB 提供程序模板的宏的信息。

这些类使用以下命名约定:使用 IWidgetImpl 模式命名的类将提供 IWidget 接口的实现。

会话类

IDBCreateSessionImpl
从数据源对象创建新会话,并返回新创建的会话上请求的接口。 数据源对象上的必需接口。

ISessionPropertiesImpl
通过调用由属性集映射定义的静态函数来实现会话属性。 属性集映射应在会话类中指定。 会话上的必需接口。

行集类

CRowsetImpl

提供标准 OLE DB 行集实现,而无需多次继承多个实现接口。 必须为其提供实现的唯一方法是 Execute

CSimpleRow
IRowsetImpl 类中使用的行句柄提供默认实现。 行句柄在逻辑上是结果行的唯一标记。 IRowsetImplIRowsetImpl::GetNextRows 中请求的每一行创建一个新的 CSimpleRow

IAccessorImpl
OLE DB 要求提供程序实现 HACCESSOR,这是 DBBINDING 结构数组的标记。 提供作为 BindType 结构地址的 HACCESSOR。 在行集和命令上是必需的。

IColumnsInfoImpl
委托给由提供程序列映射定义的静态函数。 行集和命令上的必需接口。

IConvertTypeImpl
提供有关命令或行集的类型转换可用性的信息。 在命令、行集和索引行集上是必需的。 通过委托给 OLE DB 提供的转换对象来实现 IConvertType 接口。

IDBSchemaRowsetImpl
实现 IDBSchemaRowset 接口和模板化创建程序函数 CreateSchemaRowset

IOpenRowsetImpl
打开并返回一个行集,该行集包括来自单个基表或索引的所有行。 会话对象的必需接口。

IRowsetChangeImpl
实现 OLE DB IRowsetChange 接口,该接口支持更新现有行中的列值、删除行和插入新行。

IRowsetCreatorImpl
此类继承自 IObjectWithSite 并重写 IObjectWithSite::SetSiteIRowsetCreatorImpl 执行与 IObjectWithSite 相同的功能,但还启用 OLE DB 属性 DBPROPCANSCROLLBACKWARDSDBPROPCANFETCHBACKWARDS

IRowsetIdentityImpl
实现 IRowsetIdentity 接口,通过该接口可比较两行数据是否相同。

IRowsetImpl
提供接口的 IRowset 实现,该接口是基行集接口。

IRowsetInfoImpl
使用命令类中定义的属性集映射来实现行集属性。 行集上的必需接口。

IRowsetLocateImpl
实现 OLE DB IRowsetLocate 接口,该接口从行集中提取任意行。 要在行集中支持 OLE DB 书签,请使行集从此类继承。

IRowsetNotifyCP
实现广播函数,就行集内容的更改连接点 IID_IRowsetNotify 向侦听器提供建议。 处理通知的使用者实现 IRowsetNotify 并在该连接点上注册它。

IRowsetUpdateImpl
实现 OLE DB IRowsetUpdate 接口,这使得使用者能够延迟传输使用 IRowsetChange 对数据源所做的更改,并在传输之前撤消更改。

命令类

ICommandImpl
提供 ICommand 接口的实现。 此接口不可见,但由 ICommandTextImpl 处理。 命令对象上的必需接口。

ICommandPropertiesImpl
ICommandProperties 接口的此实现由 BEGIN_PROPSET_MAP 宏定义的静态函数提供。 在命令上是必需的。

ICommandTextImpl
设置、存储和返回命令文本。 在命令上是必需的。

IDBCreateCommandImpl
从会话对象创建新命令,并返回新创建的命令上请求的接口。 会话对象上的可选接口。

其他命令类是 IColumnsInfoImplIAccessorImpl,如上面的行集类部分所述。

数据源类

IDBInitializeImpl
创建和删除与使用者的连接。 数据源对象上的必需接口,枚举器上的可选接口。

IDBPropertiesImpl
IDBProperties 是数据源对象的必需接口,是枚举器的可选接口。 但是,如果枚举器公开 IDBInitialize,则必须公开 IDBProperties(数据源属性)。

IGetDataSourceImpl
获取指向数据源对象的接口指针。 会话上的必需接口。

其他类

CUtlProps
实现各种 OLE DB 属性接口的属性(例如 IDBPropertiesISessionPropertiesIRowsetInfo)。

IErrorRecordsImpl

实现 OLE DB IErrorRecords 接口,向数据成员添加记录并从数据成员检索记录。

另请参阅

OLE DB 使用者模板参考
OLE DB 模板