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:

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