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
的類別。
Storage
用戶記錄。
BaseInterface
介面的基類,例如 IRowsetChange
。
RowClass
數據列句柄的儲存單位。
MapClass
提供者所持有之所有數據列句柄的儲存單位。
需求
Header: atldb.h
成員
介面方法 (與 IRowsetChange 搭配使用)
名稱 | 描述 |
---|---|
DeleteRows | 從數據列集刪除數據列。 |
InsertRow | 將數據列插入數據列集。 |
SetData | 設定一個或多個數據行中的數據值。 |
實作方法(回呼)
名稱 | 描述 |
---|---|
FlushData | 由提供者覆寫,以將數據認可至其存放區。 |
備註
此介面負責將數據存放區立即寫入作業。 「立即」表示當使用者(使用取用者的人員)進行任何變更時,這些變更會立即傳輸至數據存放區(且無法復原)。
IRowsetChangeImpl
會實作 OLE DB IRowsetChange
介面,以更新現有數據列中的數據行值、刪除數據列,以及插入新的數據列。
OLE DB 樣本實作支援所有基底方法 (SetData
、 InsertRow
和 DeleteRows
) 。
重要
強烈建議您在嘗試實作提供者之前先閱讀下列檔:
IRowsetChangeImpl::DeleteRows
從數據列集刪除數據列。
語法
STDMETHOD (DeleteRows )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWSTATUS rgRowStatus[]);
參數
請參閱 OLE DB 程式設計人員參考中的 IRowsetChange::D eleteRows。
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。