Sdílet prostřednictvím


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.

Metodu MoveNext

SQL_FETCH_PRIOR

Předchozí řádků; nRowsje ignorována.

MovePrev

SQL_FETCH_FIRST

První sadu řádků v sadě záznamů; nRowsje ignorována.

MoveFirst

SQL_FETCH_LAST

Poslední kompletní sadu řádků v sadě záznamů; nRowsje ignorována.

MoveLast

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).

SetAbsolutePosition

SQL_FETCH_BOOKMARK

Sadu řádků, počínaje řádek, jehož hodnota záložky odpovídá nRows .

SetBookmark

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