OLE DB 提供程序模板参考
OLE DB 提供程序模板的类和接口可分为以下类别。 参考材料还包括有关用于 OLE DB 提供程序模板的宏的信息。
这些类使用以下命名约定:使用 IWidgetImpl
模式命名的类将提供 IWidget
接口的实现。
会话类
IDBCreateSessionImpl
从数据源对象创建新会话,并返回新创建的会话上请求的接口。 数据源对象上的必需接口。
ISessionPropertiesImpl
通过调用由属性集映射定义的静态函数来实现会话属性。 属性集映射应在会话类中指定。 会话上的必需接口。
行集类
提供标准 OLE DB 行集实现,而无需多次继承多个实现接口。 必须为其提供实现的唯一方法是 Execute
。
CSimpleRow
为 IRowsetImpl
类中使用的行句柄提供默认实现。 行句柄在逻辑上是结果行的唯一标记。 IRowsetImpl
为 IRowsetImpl::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::SetSite。 IRowsetCreatorImpl
执行与 IObjectWithSite
相同的功能,但还启用 OLE DB 属性 DBPROPCANSCROLLBACKWARDS
和 DBPROPCANFETCHBACKWARDS
。
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
从会话对象创建新命令,并返回新创建的命令上请求的接口。 会话对象上的可选接口。
其他命令类是 IColumnsInfoImpl
和 IAccessorImpl
,如上面的行集类部分所述。
数据源类
IDBInitializeImpl
创建和删除与使用者的连接。 数据源对象上的必需接口,枚举器上的可选接口。
IDBPropertiesImpl
IDBProperties
是数据源对象的必需接口,是枚举器的可选接口。 但是,如果枚举器公开 IDBInitialize
,则必须公开 IDBProperties
(数据源属性)。
IGetDataSourceImpl
获取指向数据源对象的接口指针。 会话上的必需接口。
其他类
CUtlProps
实现各种 OLE DB 属性接口的属性(例如 IDBProperties
、ISessionProperties
和 IRowsetInfo
)。
实现 OLE DB IErrorRecords 接口,向数据成员添加记录并从数据成员检索记录。