Fungsi JetSetIndexRange

Berlaku untuk: Windows | Windows Server

Fungsi JetSetIndexRange

Fungsi JetSetIndexRange untuk sementara membatasi kumpulan entri indeks yang dapat dijalani kursor menggunakan JetMove untuk yang dimulai dari entri indeks saat ini dan berakhir pada entri indeks yang cocok dengan kriteria pencarian yang ditentukan oleh kunci pencarian di kursor tersebut dan kriteria terikat yang ditentukan. Kunci pencarian sebelumnya harus dibuat menggunakan JetMakeKey.

    JET_ERR JET_API JetSetIndexRange(
      __in          JET_SESID sesid,
    __in          JET_TABLEID tableidSrc,
      __in          JET_GRBIT grbit
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableidSrc

Kursor yang digunakan untuk panggilan ini.

grbit

Sekelompok bit yang berisi opsi yang akan digunakan untuk panggilan ini, yang mencakup nol atau beberapa hal berikut:

Nilai

Makna

JET_bitRangeInclusive

Kehadiran atau tidak adanya opsi ini menunjukkan kriteria batas rentang indeks. Saat ada, opsi ini menunjukkan bahwa batas rentang indeks inklusif. Ketika tidak ada, opsi ini menunjukkan bahwa batas rentang indeks bersifat eksklusif. Ketika batas rentang indeks inklusif maka entri indeks apa pun yang sama persis dengan kriteria pencarian disertakan dalam rentang.

JET_bitRangeInstantDuration

Opsi ini meminta agar rentang indeks dihapus segera setelah ditetapkan. Semua aspek lain dari operasi tetap tidak berubah. Ini berguna untuk pengujian keberadaan entri indeks yang cocok dengan kriteria pencarian.

JET_bitRangeRemove

Opsi ini meminta agar rentang indeks yang ada pada kursor dibatalkan. Setelah rentang indeks dibatalkan, dimungkinkan untuk bergerak melampaui akhir rentang indeks menggunakan JetMove. Jika rentang indeks belum berlaku, maka JetSetIndexRange akan gagal dengan JET_errInvalidOperation.

Ketika opsi ini ditentukan, semua opsi lainnya diabaikan.

JET_bitRangeUpperLimit

Jika opsi ini digunakan, maka kunci pencarian di kursor mewakili kriteria pencarian untuk entri indeks terdekat dengan akhir indeks yang akan cocok dengan rentang indeks. Rentang indeks akan ditetapkan antara posisi kursor saat ini dan entri indeks ini sehingga semua kecocokan dapat ditemukan dengan berjalan maju pada indeks menggunakan JetMove dengan JET_MoveNext atau offset positif.

Tidak bermakna untuk menggunakan opsi ini dengan kunci pencarian yang dibangun menggunakan JetMakeKey menggunakan opsi kartubebas yang dimaksudkan untuk menemukan entri indeks yang paling dekat dengan awal indeks.

Jika opsi ini dihilangkan, maka kunci pencarian di kursor mewakili kriteria pencarian untuk entri indeks yang paling dekat dengan awal indeks yang akan cocok dengan rentang indeks. Rentang indeks akan ditetapkan antara posisi kursor saat ini dan entri indeks ini sehingga semua kecocokan dapat ditemukan dengan berjalan mundur pada indeks menggunakan JetMove dengan JET_MovePrevious atau offset negatif.

Tidak bermakna untuk menghilangkan opsi ini dengan kunci pencarian yang dibangun menggunakan JetMakeKey menggunakan opsi kartubebas yang dimaksudkan untuk menemukan entri indeks yang paling dekat dengan akhir indeks.

Tampilkan Nilai

Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.

Menampilkan kode

Deskripsi

JET_errSuccess

Operasi berhasil diselesaikan.

Untuk JetSetIndexRange, ini berarti bahwa rentang indeks yang ada dibatalkan atau bahwa setidaknya ada satu entri indeks di dalam rentang indeks.

JET_errClientRequestToStopJetService

Tidak mungkin untuk menyelesaikan operasi karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errInstanceUnavailable

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi telah mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut.

Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errInvalidOperation

Kesalahan ini akan dikembalikan oleh JetSetIndexRange ketika JET_bitRangeRemove ditentukan dan tidak ada rentang indeks yang berlaku.

JET_errKeyNotMade

Tidak ada kunci pencarian saat ini untuk kursor. JetSetIndexRange mengharuskan kursor memiliki kunci pencarian yang valid karena akan menggunakannya untuk kriteria pencarian yang digunakan untuk menemukan entri indeks.

JET_errNoCurrentIndex

Tidak ada indeks saat ini untuk kursor. Ini akan terjadi untuk JetSetIndexRange jika kursor berada pada indeks kluster tabel, indeks utama belum ditentukan. Mengatur rentang indeks di atas indeks seperti itu tidak didukung.

JET_errNoCurrentRecord

Kesalahan ini akan dikembalikan oleh JetSetIndexRange untuk menunjukkan bahwa tidak ada entri indeks di dalam rentang indeks.

JET_errNotInitialized

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errRestoreInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena operasi pemulihan sedang berlangsung pada instans yang terkait dengan sesi.

JET_errSessionSharingViolation

Sesi yang sama tidak dapat digunakan untuk lebih dari satu utas secara bersamaan.

Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errTermInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi sedang dimatikan.

Jika berhasil, jika JET_bitRangeRemove ditentukan, maka rentang indeks yang saat ini berlaku dibatalkan. Jika JET_bitRangeRemove tidak ditentukan dan JET_bitRangeInstantDuration ditentukan, maka tidak ada rentang indeks yang berlaku. Jika JET_bitRangeRemove atau JET_bitRangeInstantDuration tidak ditentukan, maka rentang indeks baru berlaku. Rentang indeks ini akan membatasi sementara kumpulan entri indeks yang dapat dijalankan kursor menggunakan JetMove ke yang dimulai dari entri indeks saat ini dan berakhir pada entri indeks yang cocok dengan kriteria pencarian. Posisi kursor akan tetap tidak berubah. Jika kunci pencarian telah dibangun untuk kursor, maka kunci pencarian tersebut akan dihapus. Tidak ada perubahan pada status database yang akan terjadi.

Jika gagal, jika JET_errNoCurrentRecord tidak dikembalikan, maka tidak ada rentang indeks yang berlaku. Jika JET_errNoCurrentRecord dikembalikan, maka rentang indeks baru berlaku. Rentang indeks ini akan membatasi sementara kumpulan entri indeks yang dapat dijalankan kursor menggunakan JetMove ke yang dimulai dari entri indeks saat ini dan berakhir pada entri indeks yang cocok dengan kriteria pencarian. Posisi kursor akan tetap tidak berubah. Jika JET_errNoCurrentRecord dikembalikan dan kunci pencarian telah dibangun untuk kursor, maka kunci pencarian tersebut akan dihapus. Tidak ada perubahan pada status database yang akan terjadi.

Keterangan

Rentang indeks volatil dan akan secara otomatis dibatalkan jika ada navigasi selain JetMove yang dilakukan pada kursor.

Rentang indeks hanya berfungsi dalam satu arah. Jika batas atas ditetapkan maka hanya gerakan maju menggunakan JetMove dengan JET_MoveNext atau offset positif akan dicegah setelah akhir rentang indeks tercapai. Masih dimungkinkan untuk meninggalkan rentang indeks dalam hal ini menggunakan JetMove dengan JET_MovePrevious atau offset negatif. Situasi analog terjadi untuk batas bawah.

Persyaratan

Persyaratan Nilai

Klien

Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional.

Server

Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server.

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Lihat juga

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetMove
JetSetIndexRange
JetStopService