Condividi tramite


Classe IRowsetImpl

Fornisce un'implementazione dell'interfaccia IRowset.

Sintassi

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

Parametri

T
Classe derivata da IRowsetImpl.

RowsetInterface
Classe derivata da IRowsetImpl.

RowClass
Unità di archiviazione per .HROW

MapClass
Unità di archiviazione per tutti gli handle di riga mantenuti dal provider.

Requisiti

Intestazione: atldb.h

Membri

Metodi

Nome Descrizione
AddRefRows Aggiunge un conteggio dei riferimenti a un handle di riga esistente.
CreateRow Chiamato da GetNextRows per allocare un nuovo HROWoggetto . Non chiamato direttamente dall'utente.
GetData Recupera i dati dalla copia del set di righe della riga.
GetDBStatus Restituisce lo stato per il campo specificato.
GetNextRows Recupera le righe in sequenza, memorizzando la posizione precedente.
IRowsetImpl Costruttore. Non chiamato direttamente dall'utente.
RefRows Chiamato da AddRefRows e ReleaseRows. Non chiamato direttamente dall'utente.
ReleaseRows Rilascia righe.
RestartPosition Riposiziona la posizione di recupero successiva alla posizione iniziale; ovvero la posizione in cui è stato creato per la prima volta il set di righe.
SetDBStatus Imposta i flag di stato per il campo specificato.

Membri dei dati

Nome Descrizione
m_bCanFetchBack Indica se un provider supporta il recupero all'indietro.
m_bCanScrollBack Indica se un provider può avere lo scorrimento indietro del cursore.
m_bReset Indica se un provider ha reimpostato la posizione del cursore. Questo ha un significato speciale durante lo scorrimento indietro o il recupero indietro in GetNextRows.
m_iRowset Indice del set di righe che rappresenta il cursore.
m_rgRowHandles Elenco di handle di riga.

Osservazioni:

IRowset è l'interfaccia del set di righe di base.

IRowsetImpl::AddRefRows

Aggiunge un conteggio dei riferimenti a un handle di riga esistente.

Sintassi

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

Parametri

Vedere IRowset::AddRefRows nella guida di riferimento per programmatori OLE DB.

IRowsetImpl::CreateRow

Metodo helper chiamato da GetNextRows per allocare un nuovo HROWoggetto .

Sintassi

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

Parametri

lRowsOffset
Posizione del cursore della riga creata.

cRowsObtained
Riferimento passato all'utente che indica il numero di righe create.

rgRows
Matrice di HROWs restituita al chiamante con gli handle di riga appena creati.

Osservazioni:

Se la riga esiste, questo metodo chiama AddRefRows e restituisce . In caso contrario, alloca una nuova istanza della variabile modello RowClass e la aggiunge a m_rgRowHandles.

IRowsetImpl::GetData

Recupera i dati dalla copia del set di righe della riga.

Sintassi

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

Parametri

Vedere IRowset::GetData nella guida di riferimento per programmatori OLE DB.

Alcuni parametri corrispondono ai parametri di riferimento del programmatore OLE DB di nomi diversi, descritti in IRowset::GetData:

Parametri del modello OLE DB Parametri di riferimento per programmatori OLE DB
pDstData pData

Osservazioni:

Gestisce anche la conversione dei dati usando la DLL di conversione dei dati OLE DB.

IRowsetImpl::GetDBStatus

Restituisce i flag di stato DBSTATUS per il campo specificato.

Sintassi

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

Parametri

currentRow
[in] Riga corrente.

columnNames
[in] Colonna per cui viene richiesto lo stato.

Valore restituito

Flag DBSTATUS per la colonna.

IRowsetImpl::GetNextRows

Recupera le righe in sequenza, memorizzando la posizione precedente.

Sintassi

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

Parametri

Vedere IRowset::GetNextRows nella guida di riferimento per programmatori OLE DB.

IRowsetImpl::IRowsetImpl

Costruttore.

Sintassi

IRowsetImpl();

Osservazioni:

In genere non è necessario chiamare direttamente questo metodo.

IRowsetImpl::RefRows

Chiamato da AddRefRows e ReleaseRows per incrementare o rilasciare un conteggio dei riferimenti a un handle di riga esistente.

Sintassi

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

Parametri

Vedere IRowset::AddRefRows nella guida di riferimento per programmatori OLE DB.

Valore restituito

Valore HRESULT standard.

IRowsetImpl::ReleaseRows

Rilascia righe.

Sintassi

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

Parametri

Vedere IRowset::ReleaseRows nella guida di riferimento per programmatori OLE DB.

IRowsetImpl::RestartPosition

Riposiziona la posizione di recupero successiva alla posizione iniziale; ovvero la posizione in cui è stato creato per la prima volta il set di righe.

Sintassi

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

Parametri

Vedere IRowset::RestartPosition nella guida di riferimento per programmatori OLE DB.

Osservazioni:

La posizione del set di righe non è definita fino a quando GetNextRow non viene chiamato . È possibile spostarsi all'indietro in un set di righe chiamando RestartPosition e quindi recuperando o scorrendo all'indietro.

IRowsetImpl::SetDBStatus

Imposta i flag di stato DBSTATUS per il campo specificato.

Sintassi

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

Parametri

statusFlags
Flag DBSTATUS da impostare per la colonna.

currentRow
Riga corrente.

columnInfo
Colonna per cui viene impostato lo stato.

Valore restituito

Valore HRESULT standard.

Osservazioni:

Il provider esegue l'override di questa funzione per fornire un'elaborazione speciale per DBSTATUS_S_ISNULL e DBSTATUS_S_DEFAULT.

IRowsetImpl::m_bCanFetchBack

Indica se un provider supporta il recupero all'indietro.

Sintassi

unsigned m_bCanFetchBack:1;

Osservazioni:

Collegato alla DBPROP_CANFETCHBACKWARDS proprietà nel DBPROPSET_ROWSET gruppo. Il provider deve supportare DBPROP_CANFETCHBACKWARDS per m_bCanFetchBackwards essere true.

IRowsetImpl::m_bCanScrollBack

Indica se un provider può avere lo scorrimento indietro del cursore.

Sintassi

unsigned  m_bCanScrollBack:1;

Osservazioni:

Collegato alla DBPROP_CANSCROLLBACKWARDS proprietà nel DBPROPSET_ROWSET gruppo. Il provider deve supportare DBPROP_CANSCROLLBACKWARDS per m_bCanFetchBackwards essere true.

IRowsetImpl::m_bReset

Flag di bit utilizzato per determinare se la posizione del cursore è definita nel set di righe.

Sintassi

unsigned m_bReset:1;

Osservazioni:

Se il consumer chiama GetNextRows con un valore negativo lOffset o cRows ed m_bReset è true, GetNextRows passa alla fine del set di righe. Se m_bReset è false, il consumer riceve un codice di errore, in conformità alla specifica OLE DB. Il m_bReset flag viene impostato su true quando il set di righe viene creato per la prima volta e quando il consumer chiama IRowsetImpl::RestartPosition. Viene impostato su false quando si chiama GetNextRows.

IRowsetImpl::m_iRowset

Indice del set di righe che rappresenta il cursore.

Sintassi

DBROWOFFSET m_iRowset;

IRowsetImpl::m_rgRowHandles

Mappa degli handle di riga attualmente contenuti dal provider in risposta a GetNextRows.

Sintassi

MapClass m_rgRowHandles;

Osservazioni:

Gli handle di riga vengono rimossi chiamando ReleaseRows. Per la definizione di MapClass, vedere la panoramica di IRowsetImpl.

Vedi anche

Modelli di provider OLE DB
Architettura dei modelli di provider OLE DB
Classe CSimpleRow