Condividi tramite


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