Compartir a través de


IRowsetUpdateImpl (Clase)

Implementación de plantillas OLE DB de la interfaz IRowsetUpdate.

Sintaxis

template <
   class T,
   class Storage,
   class UpdateArray = CAtlArray<Storage>,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <RowClass::KeyType, RowClass*>
>

class IRowsetUpdateImpl : public IRowsetChangeImpl<
   T,
   Storage,
   IRowsetUpdate,
   RowClass,
   MapClass>

Parámetros

T
Una clase derivada de IRowsetUpdateImpl.

Storage
El registro de usuario.

UpdateArray
Matriz que contiene datos almacenados en caché para actualizar el conjunto de filas.

RowClass
Unidad de almacenamiento de HROW.

MapClass
La unidad de almacenamiento para todos los identificadores de fila que mantiene el proveedor.

Requisitos

Encabezado: atldb.h

Miembros

Métodos de interfaz (usados con IRowsetChange)

Nombre Descripción
SetData Establece los valores de datos en una o varias columnas.

Métodos de interfaz (usados con IRowsetUpdate)

Nombre Descripción
GetOriginalData Obtiene los datos transmitidos más recientemente al origen de datos u obtenidos de él, ignorando los cambios pendientes.
GetPendingRows Devuelve una lista de filas con cambios pendientes.
GetRowStatus Devuelve el estado de las filas especificadas.
Deshacer Deshace los cambios realizados en la fila desde la última captura o actualización.
Actualizar Transmite los cambios realizados en la fila desde la última captura o actualización.

Métodos de implementación (devolución de llamada)

Nombre Descripción
IsUpdateAllowed Se usa para comprobar la seguridad, la integridad, etc. antes de permitir las actualizaciones.

Miembros de datos

Nombre Descripción
m_mapCachedData Contiene los datos originales de la operación diferida.

Comentarios

Primero debe leer y comprender la documentación de IRowsetChange, ya que todo lo que se describe aquí también se aplica. También debe leer el capítulo 6 de la Referencia del programador de OLE DB sobre la configuración de datos.

IRowsetUpdateImpl implementa la interfaz OLE DB IRowsetUpdate, que permite a los consumidores retrasar la transmisión de los cambios realizados con IRowsetChange en el origen de datos y deshacer los cambios antes de la transmisión.

Importante

Se recomienda encarecidamente leer la documentación siguiente ANTES de intentar implementar el proveedor:

IRowsetUpdateImpl::SetData

Establece los valores de datos en una o varias columnas.

Sintaxis

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

Parámetros

Vea IRowsetChange::SetData en la Referencia del programador de OLE DB.

Comentarios

Este método invalida el método IRowsetChangeImpl::SetData, pero incluye el almacenamiento en caché de datos originales para permitir el procesamiento inmediato o diferido de la operación.

IRowsetUpdateImpl::GetOriginalData

Obtiene los datos transmitidos más recientemente al origen de datos u obtenidos de él, ignorando los cambios pendientes.

Sintaxis

STDMETHOD (GetOriginalData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pData);

Parámetros

Vea IRowsetUpdate::GetOriginalData en la Referencia del programador de OLE DB.

IRowsetUpdateImpl::GetPendingRows

Devuelve una lista de filas con cambios pendientes.

Sintaxis

STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
   DBPENDINGSTATUS dwRowStatus,
   DBCOUNTITEM* pcPendingRows,
   HROW** prgPendingRows,
   DBPENDINGSTATUS** prgPendingStatus);

Parámetros

hReserved
[in] Corresponde al parámetro hChapter en IRowsetUpdate::GetPendingRows.

Para ver otros parámetros, vea IRowsetUpdate::GetPendingRows en la Referencia del programador de OLE DB.

Comentarios

Para obtener más información, vea IRowsetUpdate::GetPendingRows en la Referencia del programador de OLE DB.

IRowsetUpdateImpl::GetRowStatus

Devuelve el estado de las filas especificadas.

Sintaxis

STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBPENDINGSTATUS rgPendingStatus[]);

Parámetros

hReserved
[in] Corresponde al parámetro hChapter en IRowsetUpdate::GetRowStatus.

Para ver otros parámetros, vea IRowsetUpdate::GetRowStatus en la Referencia del programador de OLE DB.

IRowsetUpdateImpl::Undo

Deshace los cambios realizados en la fila desde la última captura o actualización.

Sintaxis

STDMETHOD (Undo )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[ ],
   DBCOUNTITEM* pcRowsUndone,
   HROW** prgRowsUndone,
   DBROWSTATUS** prgRowStatus);

Parámetros

hReserved
[in] Corresponde al parámetro hChapter en IRowsetUpdate::Undo.

pcRowsUndone
[out] Corresponde al parámetro pcRows en IRowsetUpdate::Undo.

prgRowsUndone
[in] Corresponde al parámetro prgRows en IRowsetUpdate::Undo.

Para ver otros parámetros, vea IRowsetUpdate::Undo en la Referencia del programador de OLE DB.

IRowsetUpdateImpl::Update

Transmite los cambios realizados en la fila desde la última captura o actualización.

Sintaxis

STDMETHOD (Update )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBCOUNTITEM* pcRows,
   HROW** prgRows,
   DBROWSTATUS** prgRowStatus);

Parámetros

hReserved
[in] Corresponde al parámetro hChapter en IRowsetUpdate::Update.

Para ver otros parámetros, vea IRowsetUpdate::Update en la Referencia del programador de OLE DB.

Comentarios

Los cambios se transmiten llamando a IRowsetChangeImpl::FlushData. El consumidor debe llamar a CRowset::Update para que los cambios surtan efecto. Establezca prgRowstatus en un valor adecuado, tal como se describe en Estados de fila en la Referencia del programador de OLE DB.

IRowsetUpdateImpl::IsUpdateAllowed

Invalide este método para comprobar la seguridad, la integridad, etc. antes de las actualizaciones.

Sintaxis

HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
   HROW /* [in] */ /* hRowUpdate */,
   DBROWSTATUS* /* [out] */ /* pRowStatus */);

Parámetros

status
[in] Estado de las operaciones pendientes en las filas.

hRowUpdate
[in] Identificador de las filas que el usuario desea actualizar.

pRowStatus
[out] Estado devuelto al usuario.

Comentarios

Si determina que se debe permitir una actualización, devuelve S_OK; de lo contrario, devuelve E_FAIL. Si permite una actualización, también debe establecer DBROWSTATUS en IRowsetUpdateImpl::Update en un estado de fila adecuado.

IRowsetUpdateImpl::m_mapCachedData

Asignación que contiene los datos originales de la operación diferida.

Sintaxis

CAtlMap<
   HROW hRow,
   Storage* pData
>
m_mapCachedData;

Parámetros

hRow
Identificador de las filas de los datos.

pData
Puntero a los datos que se van a almacenar en caché. Los datos son de tipo Storage (la clase de registro de usuario). Consulte el argumento de plantilla Storage en la clase IRowsetUpdateImpl.

Consulte también

Plantillas de proveedores OLE DB
Arquitectura de plantillas de proveedores OLE DB
Crear un proveedor actualizable