Classe CBulkRowset
Recupera e modifica le righe per lavorare sui dati in blocco recuperando più handle di riga con una singola chiamata.
Sintassi
template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>
Parametri
TAccessor
Classe della funzione di accesso.
Requisiti
Intestazione: atldbcli.h
Membri
Metodi
Nome | Descrizione |
---|---|
AddRefRows | Incrementa il conteggio dei riferimenti. |
CBulkRowset | Costruttore. |
MoveFirst | Recupera la prima riga di dati, eseguendo un nuovo recupero bulk, se necessario. |
MoveLast | Passa all'ultima riga. |
MoveNext | Recupera la riga di dati successiva. |
MovePrev | Passa alla riga precedente. |
MoveToBookmark | Recupera la riga contrassegnata da un segnalibro o dalla riga in corrispondenza di un offset specificato da tale segnalibro. |
MoveToRatio | Recupera le righe a partire da una posizione frazionaria nel set di righe. |
ReleaseRows | Imposta la riga corrente (m_nCurrentRow ) su zero e rilascia tutte le righe. |
SetRows | Imposta il numero di handle di riga da recuperare da una chiamata. |
Esempio
Nell'esempio seguente viene illustrato l'uso della CBulkRowset
classe .
class CCustomerData
{
public:
char m_szField1[50];
BEGIN_COLUMN_MAP(CCustomerData)
COLUMN_ENTRY(1, m_szField1)
END_COLUMN_MAP()
};
void DoCBulkRowsetTest()
{
CoInitialize(NULL);
CCommand<CAccessor<CCustomerData>, CBulkRowset > cmd;
CDataSource ds;
// Open up data link dialogs to create a data source
ds.Open();
CSession session;
session.Open(ds);
// Could call SetRows() here if you want to fetch
// more than 10 HROWs at a time.
cmd.Open(session, L"Select * from customer");
cmd.MoveFirst();
// Note that the CBulkRowset by default fetched 10 HROWs at a time
// so that the MoveNext call will not have to make the GetNextRows
// call to get the second HROW because it has already been fetched
//by the MoveFirst() call above.
cmd.MoveNext();
cmd.Close();
session.Close();
ds.Close();
}
CBulkRowset::AddRefRows
Chiama IRowset::AddRefRows per incrementare il conteggio dei riferimenti per tutte le righe attualmente recuperate dal set di righe bulk.
Sintassi
HRESULT AddRefRows() throw();
Valore restituito
HRESULT standard.
CBulkRowset::CBulkRowset
Crea un nuovo CBulkRowset
oggetto e imposta il numero di righe predefinito su 10.
Sintassi
CBulkRowset();
CBulkRowset::MoveFirst
Recupera la prima riga di dati.
Sintassi
HRESULT MoveFirst() throw();
Valore restituito
HRESULT standard.
CBulkRowset::MoveLast
Passa all'ultima riga.
Sintassi
HRESULT MoveLast() throw();
Valore restituito
HRESULT standard.
CBulkRowset::MoveNext
Recupera la riga di dati successiva.
Sintassi
HRESULT MoveNext() throw();
Valore restituito
HRESULT standard. Quando è stata raggiunta la fine del set di righe, restituisce DB_S_ENDOFROWSET.
CBulkRowset::MovePrev
Passa alla riga precedente.
Sintassi
HRESULT MovePrev() throw();
Valore restituito
HRESULT standard.
CBulkRowset::MoveToBookmark
Recupera la riga contrassegnata da un segnalibro o dalla riga in corrispondenza di un offset specificato (lSkip) da tale segnalibro.
Sintassi
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
DBCOUNTITEM lSkip = 0) throw();
Parametri
bookmark
[in] Segnalibro che contrassegna la posizione da cui si desidera recuperare i dati.
lSkip
[in] Numero di righe dal segnalibro alla riga di destinazione. Se lSkip è zero, la prima riga recuperata è la riga con segnalibro. Se lSkip è 1, la prima riga recuperata è la riga dopo la riga con segnalibro. Se lSkip è -1, la prima riga recuperata è la riga prima della riga con segnalibro.
Valore restituito
Vedere IRowset::GetData nella guida di riferimento per programmatori OLE DB.
CBulkRowset::MoveToRatio
Recupera le righe a partire da una posizione frazionaria nel set di righe.
Sintassi
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator)throw();
Parametri
nNumerator
[in] Numeratore utilizzato per determinare la posizione frazionaria da cui recuperare i dati.
nDenominator
[in] Denominatore utilizzato per determinare la posizione frazionaria da cui recuperare i dati.
Valore restituito
HRESULT standard.
Osservazioni:
MoveToRatio
recupera le righe approssimativamente in base alla formula seguente:
(nNumerator * RowsetSize ) / nDenominator
Dove RowsetSize
è la dimensione del set di righe, misurata in righe. L'accuratezza di questa formula dipende dal provider specifico. Per informazioni dettagliate, vedere IRowsetScroll::GetRowsAtRatio nella guida di riferimento per programmatori OLE DB.
CBulkRowset::ReleaseRows
Chiama IRowset::ReleaseRows per decrementare il conteggio dei riferimenti per tutte le righe attualmente recuperate dal set di righe bulk.
Sintassi
HRESULT ReleaseRows() throw();
Valore restituito
HRESULT standard.
CBulkRowset::SetRows
Imposta il numero di handle di riga recuperati da ogni chiamata.
Sintassi
void SetRows(DBROWCOUNT nRows) throw();
Parametri
nRows
[in] Nuova dimensione del set di righe (numero di righe).
Osservazioni:
Se si chiama questa funzione, deve essere prima dell'apertura del set di righe.
Vedi anche
Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB