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:
Capítulo 6 de la Referencia del programador de OLE DB
Vea también cómo se usa la clase
RUpdateRowset
en el ejemplo UpdatePV.
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