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