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 HROW oggetto . 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 HROW
oggetto .
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 HROW
s 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