Sdílet prostřednictvím


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