Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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