Aracılığıyla paylaş


CRecordset::Move

Geçerli kayıt işaretçisini öne veya arkaya recordset içinde taşır.

virtual void Move( 
   long nRows, 
   WORD wFetchType = SQL_FETCH_RELATIVE  
);

Parametreler

  • nRows
    İleri veya geri taşımak için satır sayısı.Pozitif değerler, Recordset'in sonuna doğru ilerlemek.Negatif değerler başına doğru geriye doğru hareket ettirir.

  • wFetchType
    Satır kümesi belirler, Taşı getirmek.Ayrıntılı bilgi için Açıklamalar'a bakın.

Notlar

İçin 0 değeri aktarýrsanýz nRows, Taşı ; geçerli kaydı yeniler Taşıma herhangi bir geçerli sona erecek AddNew veya düzenleme modu ve önce geçerli kaydın değerini geri yükler AddNew veya düzenleme çağrıldı.

[!NOT]

Bir Recordset nesnesinde hareket ettirdiğinizde, silinmiş kayıtları atlayamazsınız.Bkz: CRecordset::IsDeleted daha fazla bilgi için.Açtığınızda bir CRecordset ile skipDeletedRecords seçenek ayarlanırsa, Taşı , zorunlu nRows parametre 0 olur.Bu davranış aynı verileri kullanarak başka bir istemci uygulama tarafından silinmiş satırlar yenilenmesini önler.Bkz: dwOption parametresinde açık bir açıklaması için skipDeletedRecords.

Taşıma recordset satır kümeleri tarafından yeniden konumlandırır.Değerlerini temel alan nRows ve wFetchType, Taşı ilgili satır getirir ve sonra o satır kümesinde ilk kaydı geçerli kayıt yapar.Bulk satır getiriliyor kaydettirmeyen, daha sonra satır kümesi boyutu her zaman 1'dir.Bir satır kümesi getirilirken, Taşı doğrudan çağırır CheckRowsetError getirme kaynaklanan hataları işlemek için üye işlevi.

Pass, değerlere bağlı olarak Taşı için diğer eşdeğerdir CRecordset üye işlevler.Özellikle, değeri wFetchType daha sezgisel bir üye işlev ve genellikle geçerli kaydı taşımak için tercih edilen yöntem gösteriyor olabilir.

Aşağıdaki tablo olası değerleri listeler wFetchType, satır kümesi, Taşı getirmek temel wFetchType ve nRowsve karşılık gelen herhangi bir eşdeğer üye işlev wFetchType.

wFetchType

Getirilen satır kümesi

Eşdeğer üye işlevi

SQL_FETCH_RELATIVE(varsayılan değer)

Başlangıç satır kümesi nRows ilk satırın geçerli satır kümesi içinde satırları.

 

SQL_FETCH_NEXT

Sonraki satır kümesi; nRowsgöz ardı edilir.

MoveNext

SQL_FETCH_PRIOR

Önceki satır kümesi; nRowsgöz ardı edilir.

MovePrev

SQL_FETCH_FIRST

İlk satır recordset'teki; nRowsgöz ardı edilir.

MoveFirst

SQL_FETCH_LAST

Kayıt kümesindeki son tam satır; nRowsgöz ardı edilir.

MoveLast

SQL_FETCH_ABSOLUTE

If nRows > 0, başlangıç satır kümesi nRows baştan Recordset satırları.If nRows < 0, başlangıç satır kümesi nRows recordset'in sonuna gelen satırları.nRows = 0, Başına dosya sonu (bof) koşulu verilir.

SetAbsolutePosition

SQL_FETCH_BOOKMARK

Yer işareti değeri karşılık gelen satır başlayarak satır kümesi nRows.

SetBookmark

[!NOT]

Salt ileri kayıt kümeleri için Taşı yalnızca geçerli bir değere sahip olan SQL_FETCH_NEXT için wFetchType.

Uyarı notuUyarı

Arama Taşı hiç kayıt Recordset'i varsa, bir istisna atar.Recordset kayıt olup olmadığını belirlemek için arama IsBOF ve IsEOF.

[!NOT]

Başına veya recordset'in sonuna kaydırdığınız ise (IsBOF veya IsEOF sıfır olmayan bir değer döndürür), çağrıyı yapan bir taşıma işlevi büyük olasılıkla throw bir CDBException.Örneğin, IsEOF sıfır olmayan bir değer döndürür ve IsBOF sonra yok, MoveNext bir özel durum oluşturur ama MovePrev etmez.

[!NOT]

Çağırırsanız, Taşı geçerli kayıt edilen iken güncelleştirdiyseniz veya eklenen güncelleştirmelerin uyarı olmadan kaybolacaktır.

Kayıt gezinme hakkında daha fazla bilgi için bkz: makaleleri Recordset: kaydırma (odbc) ve Recordset: yer imleri ve mutlak Pozisyonlar (odbc).Makaleyi satır toplu alma hakkında daha fazla bilgi için bkz: Recordset: getiriliyor kayıtları toplu (odbc).İlgili bilgiler için bkz: odbc API işlevi SQLExtendedFetch , Windows SDK.

Özel Durumlar

Bu yöntem türü istisnalar atabilirsiniz CDBException * ve CMemoryException*.

Örnek

// 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();

Gereksinimler

Başlık: afxdb.h

Ayrıca bkz.

Başvuru

CRecordset sınıfı

Hiyerarşi grafik

CRecordset::MoveNext

CRecordset::MovePrev

CRecordset::MoveFirst

CRecordset::MoveLast

CRecordset::SetAbsolutePosition

CRecordset::SetBookmark

CRecordset::IsBOF

CRecordset::IsEOF

CRecordset::CheckRowsetError