Compartir a través de


IRowsetImpl (Clase)

Proporciona una implementación de la interfaz IRowset.

Sintaxis

template <
   class T,
   class RowsetInterface,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <
      RowClass::KeyType,
      RowClass*>>
class ATL_NO_VTABLE IRowsetImpl : public RowsetInterface

Parámetros

T
La clase, que se deriva de IRowsetImpl.

RowsetInterface
Una clase derivada de IRowsetImpl.

RowClass
Unidad de almacenamiento para HROW.

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

Requisitos

Encabezado: atldb.h

Miembros

Métodos

Nombre Descripción
AddRefRows Agrega un recuento de referencias a un identificador de fila existente.
CreateRow Llamado por GetNextRows para asignar un nuevo HROW. El usuario no lo llama directamente.
GetData Recupera datos de la copia del conjunto de filas de la fila.
GetDBStatus Devuelve el estado del campo especificado.
GetNextRows Captura las filas secuencialmente y recuerda la posición anterior.
IRowsetImpl Constructor . El usuario no lo llama directamente.
RefRows Llamado por AddRefRows y ReleaseRows. El usuario no lo llama directamente.
ReleaseRows Libera filas.
RestartPosition Cambia la posición de captura siguiente a su posición inicial; es decir, su posición cuando se creó por primera vez el conjunto de filas.
SetDBStatus Establece las marcas de estado para el campo especificado.

Miembros de datos

Nombre Descripción
m_bCanFetchBack Indica si un proveedor admite la captura hacia atrás.
m_bCanScrollBack Indica si un proveedor puede hacer que su cursor se desplace hacia atrás.
m_bReset Indica si un proveedor ha restablecido la posición del cursor. Esto tiene un significado especial cuando se desplaza hacia atrás o se recupera hacia atrás en GetNextRows.
m_iRowset Índice del conjunto de filas que representa el cursor.
m_rgRowHandles Lista de identificadores de fila.

Comentarios

IRowset es la interfaz del conjunto de filas base.

IRowsetImpl::AddRefRows

Agrega un recuento de referencias a un identificador de fila existente.

Sintaxis

STDMETHOD(AddRefRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Parámetros

Vea IRowset::AddRefRows en la Referencia del programador de OLE DB.

IRowsetImpl::CreateRow

Método auxiliar al que llama GetNextRows para asignar un nuevo HROW.

Sintaxis

HRESULT CreateRow(DBROWOFFSET lRowsOffset,
   DBCOUNTITEM& cRowsObtained,
   HROW* rgRows);

Parámetros

lRowsOffset
Posición del cursor de la fila que se va a crear.

cRowsObtained
Una referencia que se devuelve al usuario indicando el número de filas creadas.

rgRows
Matriz de HROW devuelta al autor de la llamada con los identificadores de fila recién creados.

Comentarios

Si la fila existe, este método llama a AddRefRows y vuelve. De lo contrario, asigna una nueva instancia de la variable de plantilla RowClass y la agrega a m_rgRowHandles.

IRowsetImpl::GetData

Recupera datos de la copia del conjunto de filas de la fila.

Sintaxis

STDMETHOD(GetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pDstData);

Parámetros

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

Algunos parámetros corresponden a los parámetros de la Referencia del programador de OLE DB de nombres diferentes, que se describen en IRowset::GetData:

Parámetros de plantilla de OLE DB Parámetros de la Referencia del programador de OLE DB
pDstData pData

Comentarios

También controla la conversión de datos mediante el archivo DLL de conversión de datos OLE DB.

IRowsetImpl::GetDBStatus

Devuelve las marcas de estado DBSTATUS para el campo especificado.

Sintaxis

virtual DBSTATUS GetDBStatus(RowClass* currentRow,
   ATLCOLUMNINFO* columnNames);

Parámetros

currentRow
[in] La fila actual.

columnNames
[en] La columna para la que se solicita el estado.

Valor devuelto

Marcas DBSTATUS para la columna.

IRowsetImpl::GetNextRows

Captura las filas secuencialmente y recuerda la posición anterior.

Sintaxis

STDMETHOD(GetNextRows )(HCHAPTER hReserved,
   DBROWOFFSET lRowsOffset,
   DBROWCOUNT cRows,
   DBCOUNTITEM* pcRowsObtained,
   HROW** prghRows);

Parámetros

Vea IRowset::GetNextRows en la Referencia del programador de OLE DB.

IRowsetImpl::IRowsetImpl

Constructor .

Sintaxis

IRowsetImpl();

Comentarios

Normalmente, no será necesario llamar a este método directamente.

IRowsetImpl::RefRows

Se le llama por AddRefRows y ReleaseRows para incrementar o liberar un recuento de referencias en un identificador de fila existente.

Sintaxis

HRESULT RefRows(DBCOUNTITEM cRows,
   const HROWrghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[],
   BOOL bAdd);

Parámetros

Vea IRowset::AddRefRows en la Referencia del programador de OLE DB.

Valor devuelto

Valor HRESULT estándar.

IRowsetImpl::ReleaseRows

Libera filas.

Sintaxis

STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBROWOPTIONS rgRowOptions[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Parámetros

Vea IRowset::ReleaseRows en la Referencia del programador de OLE DB.

IRowsetImpl::RestartPosition

Cambia la posición de captura siguiente a su posición inicial; es decir, su posición cuando se creó por primera vez el conjunto de filas.

Sintaxis

STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);

Parámetros

Vea IRowset::RestartPosition en la Referencia del programador de OLE DB.

Comentarios

La posición del conjunto de filas no está definida hasta que se llama a GetNextRow. Puede desplazarse hacia atrás en un conjunto de filas llamando a RestartPosition y, a continuación, capturando o desplazándose hacia atrás.

IRowsetImpl::SetDBStatus

Establece las marcas de estado DBSTATUS para el campo especificado.

Sintaxis

virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
   RowClass* currentRow,
   ATLCOLUMNINFO* columnInfo);

Parámetros

statusFlags
Marcas DBSTATUS que se van a establecer para la columna.

currentRow
La fila actual.

columnInfo
Columna para la que se establece el estado.

Valor devuelto

Valor HRESULT estándar.

Comentarios

El proveedor invalida esta función para proporcionar un procesamiento especial para DBSTATUS_S_ISNULL y DBSTATUS_S_DEFAULT.

IRowsetImpl::m_bCanFetchBack

Indica si un proveedor admite la captura hacia atrás.

Sintaxis

unsigned m_bCanFetchBack:1;

Comentarios

Vinculado a la propiedad DBPROP_CANFETCHBACKWARDS del grupo DBPROPSET_ROWSET. El proveedor debe admitir DBPROP_CANFETCHBACKWARDS para que m_bCanFetchBackwards sea true.

IRowsetImpl::m_bCanScrollBack

Indica si un proveedor puede hacer que su cursor se desplace hacia atrás.

Sintaxis

unsigned  m_bCanScrollBack:1;

Comentarios

Vinculado a la propiedad DBPROP_CANSCROLLBACKWARDS del grupo DBPROPSET_ROWSET. El proveedor debe admitir DBPROP_CANSCROLLBACKWARDS para que m_bCanFetchBackwards sea true.

IRowsetImpl::m_bReset

Marca de bits usada para determinar si la posición del cursor se define en el conjunto de filas.

Sintaxis

unsigned m_bReset:1;

Comentarios

Si el consumidor llama a GetNextRows con un valor negativo de lOffset o cRows y m_bReset es true, GetNextRows se mueve al final del conjunto de filas. Si m_bReset es false, el consumidor recibe un código de error, conforme a la especificación OLE DB. La marca m_bReset se establece en true cuando se crea por primera vez el conjunto de filas y cuando el consumidor llama a IRowsetImpl::RestartPosition. Se establece en false cuando se llama a GetNextRows.

IRowsetImpl::m_iRowset

Índice del conjunto de filas que representa el cursor.

Sintaxis

DBROWOFFSET m_iRowset;

IRowsetImpl::m_rgRowHandles

Mapa de identificadores de fila contenidos actualmente por el proveedor en respuesta a GetNextRows.

Sintaxis

MapClass m_rgRowHandles;

Comentarios

Los identificadores de fila se quitan mediante una llamada a ReleaseRows. Consulte la información general de IRowsetImpl para obtener la definición de MapClass.

Consulte también

Plantillas de proveedores OLE DB
Arquitectura de plantillas de proveedores OLE DB
CSimpleRow (Clase)