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 模板实现支持所有基本方法(SetData
、InsertRow
和 DeleteRows
)。
重要
强烈建议在尝试实现提供程序之前阅读以下文档:
“OLE DB 程序员参考”的第 6 章
另请参阅如何在 UpdatePV 示例中使用
RUpdateRowset
类。
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。