Kayıt Kümesi: Kaydırma (ODBC)
Bu konu MFC ODBC sınıfları için geçerlidir.
Kayıt kümesini açtıktan sonra, değerleri görüntülemek, hesaplamalar yapmak, raporlar oluşturmak vb. için kayıtlara erişmeniz gerekir. Kaydırma, kayıt kümesindeki kayıttan kayda geçmenizi sağlar.
Bu konu başlığı altında açıklanmaktadır:
Kayıt kümesindeki bir kayıttan diğerine kaydırma.
Bir Kayıttan Diğerine Kaydırma
Sınıfı CRecordset
, Move
kayıt kümesi içinde kaydırma için üye işlevleri sağlar. Bu işlevler geçerli kaydı satır kümelerine göre taşır. Toplu satır getirme işlemi uyguladıysanız, bir Move
işlem kayıt kümesini satır kümesinin boyutuna göre yeniden konumlandırır. Toplu satır getirme uygulamadıysanız, bir Move
işlev çağrısı kayıt kümesini her seferinde bir kayıtla yeniden konumlandırır. Toplu satır getirme hakkında daha fazla bilgi için bkz . Kayıt Kümesi: Kayıtları Toplu Getirme (ODBC).
Not
Kayıt kümesinde gezinirken, silinen kayıtlar atlanmayabilir. Daha fazla bilgi için bkz . IsDeleted üye işlevi.
İşlevlere Move
ek olarak, CRecordset
kayıt kümenizin sonunu veya başında kaydırma yapıp yapmadığınız denetlenecek üye işlevleri sağlar.
Kayıt kümenizde kaydırmanın mümkün olup olmadığını belirlemek için üye işlevini çağırın CanScroll
.
Kaydırmak için
Bir kaydı veya bir satır kümesini iletme: MoveNext üye işlevini çağırın.
Bir kaydı veya bir satır kümesini geri döndürme: MovePrev üye işlevini çağırın.
Kayıt kümesindeki ilk kayda: MoveFirst üye işlevini çağırın.
Kayıt kümesindeki son kayda veya son satır kümesine: MoveLast üye işlevini çağırın.
Geçerli konuma göre N kayıt: Üyeyi taşı işlevini çağırın.
Kayıt kümesinin sonunu veya başlangıcını test etmek için
Son kaydı geçtiniz mi? IsEOF üye işlevini çağırın.
İlk kaydın önüne geçtiniz mi (geriye doğru hareket ediyor musunuz)? IsBOF üye işlevini çağırın.
Aşağıdaki kod örneği, herhangi bir yönde kaydırırken kayıt kümesinin sınırlarını algılamak için ve IsEOF
kullanırIsBOF
.
// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );
if( rsCustSet.IsBOF( ) )
return;
// The recordset is empty
// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
rsCustSet.MoveNext( );
// Move to the last record
rsCustSet.MoveLast( );
// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
rsCustSet.MovePrev( );
// First record is current again
rsCustSet.MoveFirst( );
IsEOF
kayıt kümesi son kaydın dışına konumlandırıldıysa sıfır olmayan bir değer döndürür. IsBOF
kayıt kümesi ilk kaydın (tüm kayıtlardan önce) önüne konumlandırıldıysa sıfır olmayan bir değer döndürür. Her iki durumda da, üzerinde çalışacak geçerli bir kayıt yoktur. Zaten TRUE olduğunda IsBOF
veya MovePrev
zaten TRUE olduğunda IsEOF
çağırırsanızMoveNext
, çerçeve bir CDBException
oluşturur. Boş bir kayıt kümesini denetlemek için ve IsEOF
de kullanabilirsinizIsBOF
.
Kayıt kümesi gezintisi hakkında daha fazla bilgi için bkz . Kayıt Kümesi: Yer İşaretleri ve Mutlak Konumlar (ODBC).
Kaydırma desteklendiğinde
Başlangıçta tasarlandığı gibi, SQL yalnızca ileri kaydırma sağlar, ancak ODBC kaydırma özelliklerini genişletir. Kaydırma için kullanılabilir destek düzeyi, uygulamanızın birlikte çalıştığı ODBC sürücülerine, sürücünüzün ODBC API uyumluluk düzeyine ve ODBC İmleç Kitaplığı'nın belleğe yüklenip yüklenmediğine bağlıdır. Daha fazla bilgi için bkz . ODBC ve ODBC: ODBC İmleç Kitaplığı.
İpucu
İmleç kitaplığının kullanılıp kullanılmayacağını denetleyebilirsiniz. CDatabase::Open için bUseCursorLib ve dwOptions parametrelerine bakın.
Not
MFC DAO sınıflarından farklı olarak, MFC ODBC sınıfları belirtilen ölçütleri karşılayan sonraki (veya önceki) kaydı bulmak için bir işlev kümesi Find
sağlamaz.
Ayrıca bkz.
Kayıt Kümesi (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Kayıt Kümesi: Kayıtları Filtreleme (ODBC)