IRowsetChangeImpl Class
The OLE DB Templates implementation of the IRowsetChange interface in the OLE DB specification.
Syntax
template <
class T,
class Storage,
class BaseInterface = IRowsetChange,
class RowClass = CSimpleRow,
class MapClass = CAtlMap <RowClass::KeyType, RowClass*>>
class ATL_NO_VTABLE IRowsetChangeImpl : public BaseInterface
Parameters
T
A class derived from IRowsetChangeImpl
.
Storage
The user record.
BaseInterface
The base class for the interface, such as IRowsetChange
.
RowClass
The storage unit for the row handle.
MapClass
The storage unit for all row handles held by the provider.
Requirements
Header: atldb.h
Members
Interface Methods (Used with IRowsetChange)
Name | Description |
---|---|
DeleteRows | Deletes rows from the rowset. |
InsertRow | Inserts a row into the rowset. |
SetData | Sets data values in one or more columns. |
Implementation Method (Callback)
Name | Description |
---|---|
FlushData | Overridden by provider to commit data to its store. |
Remarks
This interface is responsible for immediate write operations to a data store. "Immediate" means that when the end user (the person using the consumer) makes any changes, those changes are immediately transmitted to the data store (and cannot be undone).
IRowsetChangeImpl
implements the OLE DB IRowsetChange
interface, which enables updating of values of columns in existing rows, deleting rows, and inserting new rows.
The OLE DB Templates implementation supports all the base methods (SetData
, InsertRow
, and DeleteRows
).
Important
It is strongly recommended that you read the following documentation BEFORE attempting to implement your provider:
Chapter 6 of the OLE DB Programmer's Reference
Also see how the
RUpdateRowset
class is used in the UpdatePV sample.
IRowsetChangeImpl::DeleteRows
Deletes rows from the rowset.
Syntax
STDMETHOD (DeleteRows )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWSTATUS rgRowStatus[]);
Parameters
See IRowsetChange::DeleteRows in the OLE DB Programmer's Reference.
IRowsetChangeImpl::InsertRow
Creates and initializes a new row in the rowset.
Syntax
STDMETHOD (InsertRow )(HCHAPTER /* hReserved */,
HACCESSOR hAccessor,
void* pData,
HROW* phRow);
Parameters
See IRowsetChange::InsertRow in the OLE DB Programmer's Reference.
IRowsetChangeImpl::SetData
Sets data values in one or more columns.
Syntax
STDMETHOD (SetData )(HROW hRow,
HACCESSOR hAccessor,
void* pSrcData);
Parameters
See IRowsetChange::SetData in the OLE DB Programmer's Reference.
IRowsetChangeImpl::FlushData
Overridden by provider to commit data to its store.
Syntax
HRESULT FlushData(HROW hRowToFlush,
HACCESSOR hAccessorToFlush);
Parameters
hRowToFlush
[in] Handle to the rows for the data. The type of this row is determined from the RowClass template argument of the IRowsetImpl
class (CSimpleRow
by default).
hAccessorToFlush
[in] Handle to the accessor, which contains binding information and type information in its PROVIDER_MAP
(see IAccessorImpl).
Return Value
A standard HRESULT.
See also
OLE DB Provider Templates
OLE DB Provider Template Architecture