Share via


IRowsetChangeImpl 类

OLE DB 规范中 IRowsetChange 接口的 OLE DB 模板实现。

语法

template <
   class T,
   class Storage,
   class BaseInterface = IRowsetChange,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <RowClass::KeyType, RowClass*>>
class ATL_NO_VTABLE IRowsetChangeImpl : public BaseInterface

参数

T
派生自 IRowsetChangeImpl 的类。

存储
用户记录。

BaseInterface
接口的基类,例如 IRowsetChange

RowClass
行句柄的存储单元。

MapClass
提供程序持有的所有行句柄的存储单元。

要求

标头: atldb.h

成员

接口方法(与 IRowsetChange 一起使用)

名称 描述
DeleteRows 从行集中删除行。
InsertRow 将行插入行集。
SetData 设置一列或多列中的数据值。

实现方法(回调)

名称 描述
FlushData 由提供程序重写以将数据提交到其存储中。

备注

此接口负责立即向数据存储写入操作。 “即时”表示最终用户(使用使用者的人员)进行任何更改时,这些更改会立即传输到数据存储(并且无法撤消)。

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

OLE DB 模板实现支持所有基本方法(SetDataInsertRowDeleteRows)。

重要

强烈建议在尝试实现提供程序之前阅读以下文档:

IRowsetChangeImpl::DeleteRows

从行集中删除行。

语法

STDMETHOD (DeleteRows )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBROWSTATUS rgRowStatus[]);

参数

请参阅“OLE DB 程序员参考”中的 IRowsetChange::DeleteRows

IRowsetChangeImpl::InsertRow

创建并初始化行集中的新行。

语法

STDMETHOD (InsertRow )(HCHAPTER /* hReserved */,
   HACCESSOR hAccessor,
   void* pData,
   HROW* phRow);

参数

请参阅“OLE DB 程序员参考”中的 IRowsetChange::InsertRow

IRowsetChangeImpl::SetData

设置一列或多列中的数据值。

语法

STDMETHOD (SetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pSrcData);

参数

请参阅“OLE DB 程序员参考”中的 IRowsetChange::SetData

IRowsetChangeImpl::FlushData

由提供程序重写以将数据提交到其存储中。

语法

HRESULT FlushData(HROW hRowToFlush,
   HACCESSOR hAccessorToFlush);

参数

hRowToFlush
[in] 数据行的句柄。 此行的类型由 IRowsetImpl 类的 RowClass 模板参数确定(默认情况下是 CSimpleRow)。

hAccessorToFlush
[in] 访问器的句柄,包含 PROVIDER_MAP 中的绑定信息和类型信息(请参阅 IAccessorImpl)。

返回值

标准 HRESULT。

另请参阅

OLE DB 提供程序模板
OLE DB 提供程序模板体系结构