Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis 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