Fungsi JetSetCurrentIndex

Berlaku untuk: Windows | Windows Server

Fungsi JetSetCurrentIndex

Fungsi JetSetCurrentIndex dapat digunakan untuk mengatur indeks kursor saat ini. Indeks kursor saat ini menentukan rekaman mana dalam tabel yang terlihat oleh kursor tersebut dan urutan munculnya dengan memilih kumpulan entri indeks yang akan digunakan untuk mengekspos rekaman tersebut.

    JET_ERR JET_API JetSetCurrentIndex(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in_opt      const tchar* szIndexName
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableid

Kursor yang digunakan untuk panggilan ini.

szIndexName

Nama indeks yang akan dipilih untuk kursor.

Jika parameter ini null atau string kosong maka indeks berkluster akan dipilih. Jika indeks utama didefinisikan untuk tabel, indeks tersebut akan dipilih karena sama dengan indeks berkluster. Jika tidak ada indeks utama yang ditentukan untuk tabel, indeks berurutan akan dipilih. Indeks berurutan tidak memiliki definisi indeks. Lihat JetCreateIndex untuk informasi selengkapnya.

Jika pindexid bukan NULL, maka nama indeks akan diabaikan dan indeks akan dipilih oleh ID indeksnya.

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.

JET_errBadItagSequence

Indeks sekunder sedang dipilih dengan opsi JET_bitNoMove dan tidak ada nilai untuk kolom kunci multinilai pertama dalam definisi indeks baru yang sesuai dengan nomor urutan yang ditentukan.

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_errInvalidIndexId

Konten ID indeks tidak valid atau telah kedaluwarsa dan perlu disegarkan. Ini dapat terjadi untuk JetSetCurrentIndex ketika:

  • pindexid-cbStruct> bukan ukuran yang diharapkan (Windows Server 2003 dan rilis yang lebih baru).

  • Mesin telah dimatikan sejak ID indeks diambil.

  • Semua kursor yang mereferensikan tabel yang berisi indeks yang sesuai dengan ID indeks telah ditutup dan mesin telah mengusir definisi indeks tersebut dari cache skema.

  • ID indeks sedang digunakan dengan kursor yang dibuka pada tabel yang salah.

  • Indeks telah dihilangkan atau belum terlihat oleh sesi.

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_errInvalidName

Salah satu nama objek yang ditentukan tidak valid. Semua nama objek harus sesuai dengan sekumpulan aturan yang sama. Aturan ini adalah sebagai berikut:

  • Nama objek harus terdiri dari karakter ASCII.

  • Panjang nama objek harus minimal satu karakter.

  • Panjang nama objek tidak boleh melebihi JET_cbNameMost (64).

  • Nama objek mungkin tidak dimulai dengan spasi.

  • Nama objek mungkin tidak berisi karakter kontrol ASCII (0x00 melalui 0x1F).

  • Nama objek tidak boleh berisi karakter tanda seru (!), titik (.), kurung kiri ([), atau tanda kurung kanan (]).

  • Setelah divalidasi, hanya bagian string hingga spasi pertama (jika ada) yang akan digunakan untuk nama objek. Ini secara efektif berarti bahwa nama objek mungkin juga tidak berisi spasi.

JET_errInvalidParameter

Salah satu parameter yang disediakan berisi nilai yang tidak terduga atau berisi nilai yang tidak masuk akal ketika dikombinasikan dengan nilai parameter lain. Ini dapat terjadi untuk JetSetCurrentIndex ketika pindexid bukan NULL dan pindexid-cbStruct> bukan dari ukuran yang diharapkan (Windows XP dan rilis sebelumnya).

JET_errNoCurrentRecord

Indeks sekunder sedang dipilih dengan opsi JET_bitNoMove dan tidak ada entri indeks dalam indeks baru yang sesuai dengan rekaman yang terkait dengan entri indeks pada posisi kursor saat ini pada indeks lama.

JET_errNotInitialized

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

JET_errOutOfCursors

Mesin telah menghabiskan kumpulan sumber dayanya yang digunakan untuk membuka kursor. Jumlah maksimum kursor yang dapat dibuka kapan saja dikontrol menggunakan JET_paramMaxCursors. Lihat JetSetSystemParameter untuk informasi selengkapnya. Ini dapat terjadi untuk JetSetCurrentIndex ketika indeks sekunder telah dipilih dan mesin tidak dapat membuka kursor internal untuk menggunakan indeks tersebut.

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, indeks kursor saat ini diatur ke indeks yang diminta. Entri indeks sekarang dapat dicari menggunakan JetSeek sesuai dengan definisi indeks indeks yang diminta. Entri indeks juga dapat dijumlahkan menggunakan JetMove dalam urutan yang ditentukan oleh definisi indeks tersebut. Posisi kursor saat ini diatur ke entri indeks pertama pada indeks (JET_bitMoveFirst) atau ke entri indeks tertentu yang terkait dengan posisi kursor saat ini pada indeks lama (JET_bitNoMove). Tidak ada perubahan pada status database yang akan terjadi.

Jika gagal, indeks saat ini dan posisi kursor saat ini berada dalam status tidak terdefinisi. Tidak ada perubahan pada status database yang akan terjadi.

Keterangan

Jika petunjuk ID indeks kedaluarsa maka API hanya gagal. Tidak ada fallback ke nama teks indeks dalam kasus ini seperti yang mungkin diharapkan. Fallback ini harus dilakukan secara manual oleh pemanggil API.

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.

Unicode

Diimplementasikan sebagai JetSetCurrentIndexW (Unicode) dan JetSetCurrentIndexA (ANSI).

Lihat juga

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXID
JetCreateIndex
JetGetCurrentIndex
JetGetIndexInfo
JetGetTableIndexInfo
JetMove
JetSeek
JetSetCurrentIndex
JetSetSystemParameter
JetStopService