CBulkRowset – třída
Načte řádky a manipuluje s nimi, aby pracovaly s daty hromadně načtením více popisovačů řádků pomocí jednoho volání.
Syntaxe
template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>
Parametry
TAccessor
Třída příslušenství.
Požadavky
Hlavička: atldbcli.h
Členové
Metody
Název | Popis |
---|---|
AddRefRows | Zvýší počet odkazů. |
CBulkRowset | Konstruktor |
MoveFirst | Načte první řádek dat a v případě potřeby provede nové hromadné načtení. |
MoveLast | Přesune se na poslední řádek. |
MoveNext | Načte další řádek dat. |
MovePrev | Přesune se na předchozí řádek. |
MoveToBookmark | Načte řádek označený záložkou nebo řádkem v zadaném posunu od této záložky. |
MoveToRatio | Načte řádky začínající desetinnou pozicí v sadě řádků. |
ReleaseRows | Nastaví aktuální řádek (m_nCurrentRow ) na nulu a uvolní všechny řádky. |
SetRows | Nastaví počet popisovačů řádků, které se mají načíst jedním voláním. |
Příklad
Následující příklad ukazuje použití CBulkRowset
třídy.
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
Volá IRowset::AddRefRows pro zvýšení počtu odkazů pro všechny řádky, které jsou aktuálně načteny z hromadné sady řádků.
Syntaxe
HRESULT AddRefRows() throw();
Návratová hodnota
Standardní HODNOTA HRESULT.
CBulkRowset::CBulkRowset
Vytvoří nový CBulkRowset
objekt a nastaví výchozí počet řádků na 10.
Syntaxe
CBulkRowset();
CBulkRowset::MoveFirst
Načte první řádek dat.
Syntaxe
HRESULT MoveFirst() throw();
Návratová hodnota
Standardní HODNOTA HRESULT.
CBulkRowset::MoveLast
Přesune se na poslední řádek.
Syntaxe
HRESULT MoveLast() throw();
Návratová hodnota
Standardní HODNOTA HRESULT.
CBulkRowset::MoveNext
Načte další řádek dat.
Syntaxe
HRESULT MoveNext() throw();
Návratová hodnota
Standardní HODNOTA HRESULT. Po dosažení konce sady řádků se vrátí DB_S_ENDOFROWSET.
CBulkRowset::MovePrev
Přesune se na předchozí řádek.
Syntaxe
HRESULT MovePrev() throw();
Návratová hodnota
Standardní HODNOTA HRESULT.
CBulkRowset::MoveToBookmark
Načte řádek označený záložkou nebo řádkem v zadaném posunu (lSkip) z této záložky.
Syntaxe
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
DBCOUNTITEM lSkip = 0) throw();
Parametry
bookmark
[v] Záložka označující umístění, ze kterého chcete načíst data.
LSkip
[v] Počet řádků ze záložky do cílového řádku. Pokud je lSkip nula, první řádek načtený je řádek záložky. Pokud je lSkip 1, první řádek načtený je řádek za záložkou řádku. Pokud je lSkip -1, první řádek načtený je řádek před řádkem záložky.
Návratová hodnota
Viz IRowset::GetData v odkazech programátora OLE DB.
CBulkRowset::MoveToRatio
Načte řádky začínající desetinnou pozicí v sadě řádků.
Syntaxe
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator)throw();
Parametry
nNumerator
[v] Čitatel použitý k určení desetinné pozice, ze které se mají načítat data.
nDenominator
[v] Jmenovatel použitý k určení desetinné pozice, ze které se mají načítat data.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
MoveToRatio
načte řádky zhruba podle následujícího vzorce:
(nNumerator * RowsetSize ) / nDenominator
Kde RowsetSize
je velikost sady řádků měřená v řádcích. Přesnost tohoto vzorce závisí na konkrétním poskytovateli. Podrobnosti najdete v tématu IRowsetScroll::GetRowsAtRatio v odkazech programátora OLE DB.
CBulkRowset::ReleaseRows
Volá IRowset::ReleaseRows , aby se dekrementoval počet odkazů pro všechny řádky, které jsou aktuálně načteny z hromadné sady řádků.
Syntaxe
HRESULT ReleaseRows() throw();
Návratová hodnota
Standardní HODNOTA HRESULT.
CBulkRowset::SetRows
Nastaví počet popisovačů řádků načtených jednotlivými voláními.
Syntaxe
void SetRows(DBROWCOUNT nRows) throw();
Parametry
nRows
[v] Nová velikost sady řádků (počet řádků)
Poznámky
Pokud tuto funkci zavoláte, musí být před otevřením sady řádků.
Viz také
Šablony příjemců OLE DB
Referenční dokumentace k šablonám příjemců OLE DB