CRecordset::Move
Přesune aktuální záznam ukazatele v sadě záznamů vpřed nebo vzad.
Syntaxe
virtual void Move(
long nRows,
WORD wFetchType = SQL_FETCH_RELATIVE
);
Parametry
nRows
Počet řádků, které chcete přesunout dopředu nebo dozadu.Kladné hodnoty posunou dopředu, směrem ke konci záznamů.Záporné hodnoty posunou vzad, na začátek.wFetchType
Určuje sadu řádků, přesunout bude načítat.Podrobnosti naleznete v části poznámky.
Poznámky
Pokud zadáte hodnotu 0 pro nRows , přesunout aktualizuje aktuální záznam; Přesunout budou ukončeny všechny aktuální AddNew nebo Upravit režimu a obnoví hodnotu aktuální záznam před AddNew nebo Upravit byla volána.
Poznámka
Při přesunutí přes sadu záznamů nelze přeskočit odstraněné záznamy.Viz CRecordset::IsDeleted Další informace.Při otevření CRecordset se skipDeletedRecords nastavení, přesunout nepodmíněných výrazů, pokud nRows parametr je 0.Toto chování zabrání aktualizaci řádků odstraněné jiné klientské aplikace používají stejná data.Najdete dwOption parametr v otevřených popis skipDeletedRecords.
Přesunout přemístí záznamů pomocí sady řádků.Na základě hodnot pro nRows a wFetchType , přesunout bude načítat příslušné sadě řádků a potom provádí první záznam v této sady řádků aktuálního záznamu.Pokud nebyly implementovány načítání řádku hromadné, velikost řádků je vždy 1.Při načítání sady řádků přesunout volání přímo CheckRowsetError členské funkce zpracování chyby vyplývající z načtením.
Podle hodnot předáte přesunout je ekvivalentní k dalším CRecordset funkce členů.Zejména hodnotu wFetchType může znamenat členské funkce, která je intuitivnější a často upřednostňovanou metodou pro přesunutí aktuálního záznamu.
Následující tabulka obsahuje možné hodnoty pro wFetchType , řádků, přesunout bude načítat založené na wFetchType a nRows a jakékoli rovnocenné členské funkce odpovídající wFetchType .
wFetchType |
Načtených řádků. |
Ekvivalentní členské funkce |
---|---|---|
SQL_FETCH_RELATIVE(výchozí hodnota) |
Spuštění sady řádků nRows řádky z prvního řádku v aktuální sadu řádků. |
|
SQL_FETCH_NEXT |
Další sady řádků; nRowsje ignorována. |
|
SQL_FETCH_PRIOR |
Předchozí řádků; nRowsje ignorována. |
|
SQL_FETCH_FIRST |
První sadu řádků v sadě záznamů; nRowsje ignorována. |
|
SQL_FETCH_LAST |
Poslední kompletní sadu řádků v sadě záznamů; nRowsje ignorována. |
|
SQL_FETCH_ABSOLUTE |
If nRows > 0 řádků spuštění nRows řádky od začátku sady záznamů.If nRows < 0 řádků spuštění nRows řádky od konce sady záznamů.Pokud nRows = 0, je vrácena podmínka začátek souboru (BOF). |
|
SQL_FETCH_BOOKMARK |
Sadu řádků, počínaje řádek, jehož hodnota záložky odpovídá nRows . |
Poznámka
U sady záznamů pouze pro předávání přesunout je platná pouze s hodnotou SQL_FETCH_NEXT pro wFetchType .
Upozornění
Volání přesunout vyvolá výjimku, pokud sada záznamů neobsahuje žádné záznamy.Určení, zda je sada záznamů záznamy, zavolejte na IsBOF a IsEOF.
Poznámka
Pokud jste zobrazili v minulosti začátku nebo konce sady záznamů ( IsBOF nebo IsEOF vrátí nenulovou hodnotu), volání přesunout pravděpodobně vyvolají funkce CDBException .Například pokud IsEOF vrátí nenulovou hodnotu a IsBOF nemá potom MoveNext vyvolají výjimku, ale MovePrev nikoli.
Poznámka
Při volání přesunout zatímco probíhá v aktuálním záznamu, dojde ke ztrátě bez upozornění aktualizace přidány nebo aktualizovány.
Další informace o navigačním záznamů naleznete v článcích záznamů: posouvání (ODBC) a záznamů: záložky a absolutní pozice (ODBC).Další informace o načítání řádků hromadného naleznete v článku záznamů: načítání záznamů hromadné (ODBC).Související informace naleznete v části funkce rozhraní API ODBC SQLExtendedFetch v Windows SDK.
Výjimky
Exception
Condition
Tuto metodu lze vyvolávají výjimky typu CDBException * a CMemoryException* .
// rs is a CRecordset or a CRecordset-derived object
// Change the rowset size to 5
rs.SetRowsetSize(5);
// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);
// Move to the first record in the recordset
rs.MoveFirst();
// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset,
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);
rs.MoveFirst();
rs.MoveNext();
Požadavky
Záhlaví: afxdb.h
Viz také
Třída CRecordset
Graf hierarchie
CRecordset::MoveNext
CRecordset::MovePrev
CRecordset::MoveFirst
CRecordset::MoveLast
CRecordset::SetAbsolutePosition
CRecordset::SetBookmark
CRecordset::IsBOF
CRecordset::IsEOF
CRecordset::CheckRowsetError