Bagikan melalui


Recordset: Menggulir (ODBC)

Topik ini berlaku untuk kelas MFC ODBC.

Setelah membuka kumpulan rekaman, Anda perlu mengakses rekaman untuk menampilkan nilai, melakukan perhitungan, membuat laporan, dan sebagainya. Menggulir memungkinkan Anda berpindah dari rekaman ke rekaman dalam kumpulan rekaman Anda.

Topik ini menjelaskan:

Menggulir dari Satu Rekaman ke Rekaman Lain

Kelas CRecordset menyediakan Move fungsi anggota untuk menggulir dalam kumpulan rekaman. Fungsi-fungsi ini memindahkan rekaman saat ini menurut kumpulan baris. Jika Anda telah menerapkan pengambilan baris massal, operasi memposisikan Move ulang kumpulan rekaman berdasarkan ukuran set baris. Jika Anda belum menerapkan pengambilan baris massal, panggilan ke fungsi memposisikan Move ulang kumpulan rekaman dengan satu rekaman setiap kali. Untuk informasi selengkapnya tentang pengambilan baris massal, lihat Recordset: Mengambil Rekaman secara Massal (ODBC).

Catatan

Saat berpindah melalui kumpulan rekaman, rekaman yang dihapus mungkin tidak dilewati. Untuk informasi selengkapnya, lihat fungsi anggota IsDeleted .

Selain Move fungsi, CRecordset menyediakan fungsi anggota untuk memeriksa apakah Anda telah menggulir melewati akhir atau menjelang awal kumpulan rekaman Anda.

Untuk menentukan apakah pengguliran dimungkinkan di kumpulan rekaman Anda, panggil CanScroll fungsi anggota.

Untuk menggulir

  1. Teruskan satu rekaman atau satu set baris: panggil fungsi anggota MoveNext .

  2. Mundur satu rekaman atau satu set baris: panggil fungsi anggota MovePrev .

  3. Ke rekaman pertama dalam kumpulan rekaman: panggil fungsi anggota MoveFirst .

  4. Ke rekaman terakhir dalam kumpulan rekaman atau ke set baris terakhir: panggil fungsi anggota MoveLast .

  5. Rekaman N relatif terhadap posisi saat ini: panggil fungsi Pindahkan anggota.

Untuk menguji akhir atau awal kumpulan rekaman

  1. Apakah Anda menggulir melewati rekaman terakhir? Panggil fungsi anggota IsEOF.

  2. Sudahkah Anda menggulir ke depan rekaman pertama (bergerak mundur)? Panggil fungsi anggota IsBOF.

Contoh kode berikut menggunakan IsBOF dan IsEOF untuk mendeteksi batas kumpulan rekaman saat menggulir ke kedua arah.

// 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 mengembalikan nilai bukan nol jika kumpulan rekaman diposisikan melewati rekaman terakhir. IsBOF mengembalikan nilai bukan nol jika kumpulan rekaman diposisikan di depan rekaman pertama (sebelum semua rekaman). Dalam kedua kasus, tidak ada catatan saat ini untuk dioperasikan. Jika Anda memanggil MovePrev kapan IsBOF sudah TRUE atau memanggil MoveNext kapan IsEOF sudah TRUE, kerangka kerja akan melempar CDBException. Anda juga dapat menggunakan IsBOF dan IsEOF untuk memeriksa kumpulan rekaman kosong.

Untuk informasi selengkapnya tentang navigasi recordset, lihat Recordset: Bookmarks and Absolute Positions (ODBC).

Saat pengguliran didukung

Seperti yang dirancang awalnya, SQL hanya menyediakan pengguliran maju, tetapi ODBC memperluas kemampuan gulir. Tingkat dukungan yang tersedia untuk menggulir tergantung pada driver ODBC yang bekerja dengan aplikasi Anda, tingkat kesesuaian ODBC API driver Anda, dan apakah Pustaka Kursor ODBC dimuat ke dalam memori. Untuk informasi selengkapnya, lihat ODBC dan ODBC: Pustaka Kursor ODBC.

Tip

Anda dapat mengontrol apakah pustaka kursor digunakan. Lihat parameter bUseCursorLib dan dwOptions ke CDatabase::Open.

Catatan

Tidak seperti kelas MFC DAO, kelas MFC ODBC tidak menyediakan serangkaian Find fungsi untuk menemukan rekaman berikutnya (atau sebelumnya) yang memenuhi kriteria yang ditentukan.

Baca juga

Recordset (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Recordset: Pemfilteran Rekaman (ODBC)