CBulkRowset-Klasse

Ruft Zeilen ab und bearbeitet sie, um in Massen an Daten zu arbeiten, indem mehrere Zeilenhandles mit einem einzigen Aufruf abgerufen werden.

Syntax

template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>

Parameter

TAccessor
Eine Accessorklasse.

Anforderungen

Header: atldbcli.h

Member

Methoden

Name Beschreibung
AddRefRows Erhöht die Referenzanzahl.
CBulkRowset Konstruktor.
MoveFirst Ruft die erste Datenzeile ab, und führt bei Bedarf einen neuen Massenabruf durch.
MoveLast Wechselt zur letzten Zeile.
MoveNext Ruft die nächste Datenzeile ab.
MovePrev Wechselt zur vorherigen Zeile.
MoveToBookmark Ruft die Zeile ab, die durch eine Textmarke oder die Zeile in einem angegebenen Offset von dieser Textmarke markiert ist.
MoveToRatio Ruft Zeilen ab einer Bruchposition im Rowset ab.
ReleaseRows Legt die aktuelle Zeile (m_nCurrentRow) auf Null fest und gibt alle Zeilen frei.
SetRows Legt die Anzahl der Zeilenhandles fest, die von einem Aufruf abgerufen werden sollen.

Beispiel

Im folgenden Beispiel wird die Verwendung der CBulkRowset Klasse veranschaulicht.

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

Ruft "IRowset::AddRefRows " auf, um die Verweisanzahl für alle Zeilen zu erhöhen, die derzeit aus dem Massen-Rowset abgerufen wurden.

Syntax

HRESULT AddRefRows() throw();

Rückgabewert

Ein Standard-HRESULT.

CBulkRowset::CBulkRowset

Erstellt ein neues CBulkRowset Objekt und legt die Standardzeilenanzahl auf 10 fest.

Syntax

CBulkRowset();

CBulkRowset::MoveFirst

Ruft die erste Datenzeile ab.

Syntax

HRESULT MoveFirst() throw();

Rückgabewert

Ein Standard-HRESULT.

CBulkRowset::MoveLast

Wechselt zur letzten Zeile.

Syntax

HRESULT MoveLast() throw();

Rückgabewert

Ein Standard-HRESULT.

CBulkRowset::MoveNext

Ruft die nächste Datenzeile ab.

Syntax

HRESULT MoveNext() throw();

Rückgabewert

Ein Standard-HRESULT. Wenn das Ende des Rowsets erreicht wurde, wird DB_S_ENDOFROWSET zurückgegeben.

CBulkRowset::MovePrev

Wechselt zur vorherigen Zeile.

Syntax

HRESULT MovePrev() throw();

Rückgabewert

Ein Standard-HRESULT.

CBulkRowset::MoveToBookmark

Ruft die Zeile, die durch eine Textmarke oder die Zeile an einem angegebenen Offset (lSkip) markiert ist, von dieser Textmarke ab.

Syntax

HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
   DBCOUNTITEM lSkip = 0) throw();

Parameter

bookmark
[in] Eine Textmarke, die den Speicherort markiert, von dem Sie Daten abrufen möchten.

lSkip
[in] Die Anzahl der Zeilen von der Textmarke in die Zielzeile. Wenn "lSkip " null ist, ist die erste abgerufene Zeile die Textmarke. Wenn lSkip 1 ist, ist die erste abgerufene Zeile die Zeile nach der textmarkeierten Zeile. Wenn lSkip -1 ist, ist die erste abgerufene Zeile die Zeile vor der mit einer Textmarke versehenen Zeile.

Rückgabewert

Siehe "IRowset::GetData " in der OLE DB-Programmierreferenz.

CBulkRowset::MoveToRatio

Ruft Zeilen ab einer Bruchposition im Rowset ab.

Syntax

HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
   DBCOUNTITEM nDenominator)throw();

Parameter

nNumerator
[in] Der Zähler, der verwendet wird, um die Bruchposition zu bestimmen, aus der Daten abgerufen werden sollen.

nDenominator
[in] Der Nenner, der verwendet wird, um die Bruchposition zu bestimmen, aus der Daten abgerufen werden sollen.

Rückgabewert

Ein Standard-HRESULT.

Hinweise

MoveToRatio Ruft die Zeilen ungefähr gemäß der folgenden Formel ab:

(nNumerator * RowsetSize ) / nDenominator

Dabei RowsetSize handelt es sich um die Größe des Rowsets, gemessen in Zeilen. Die Genauigkeit dieser Formel hängt vom jeweiligen Anbieter ab. Ausführliche Informationen finden Sie unter "IRowsetScroll::GetRowsAtRatio " in der OLE DB-Programmierreferenz.

CBulkRowset::ReleaseRows

Ruft IRowset::ReleaseRows auf, um die Referenzanzahl für alle Zeilen zu verringern, die derzeit aus dem Massen-Rowset abgerufen wurden.

Syntax

HRESULT ReleaseRows() throw();

Rückgabewert

Ein Standard-HRESULT.

CBulkRowset::SetRows

Legt die Anzahl der Zeilenhandles fest, die von jedem Aufruf abgerufen werden.

Syntax

void SetRows(DBROWCOUNT nRows) throw();

Parameter

nRows
[in] Die neue Größe des Rowsets (Anzahl der Zeilen).

Hinweise

Wenn Sie diese Funktion aufrufen, muss sie vor dem Öffnen des Rowsets erfolgen.

Siehe auch

OLE DB-Consumervorlagen
Referenz der OLE DB-Consumervorlagen