Fungsi JetGetCurrentIndex

Berlaku untuk: Windows | Windows Server

Fungsi JetGetCurrentIndex

Fungsi JetGetCurrentIndex menentukan nama indeks saat ini dari kursor tertentu. Nama ini juga digunakan untuk memilih ulang indeks tersebut sebagai indeks saat ini menggunakan JetSetCurrentIndex. Ini juga dapat digunakan untuk menemukan properti indeks tersebut menggunakan JetGetTableIndexInfo.

    JET_ERR JET_API JetGetCurrentIndex(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_PSTR szIndexName,
      __in          unsigned long cchIndexName
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableid

Kursor yang digunakan untuk panggilan ini.

szIndexName

Buffer output yang menerima nama indeks kursor saat ini.

cchIndexName

Ukuran maksimum dalam karakter buffer output.

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_errClientRequestToStopJetService

Tidak dimungkinkan 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_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.

JET_wrnBufferTruncated

Operasi berhasil diselesaikan, tetapi buffer output terlalu kecil untuk menerima seluruh nama indeks.

Buffer output telah diisi dengan nama indeks sebanyak yang sesuai. Jika buffer output setidaknya satu karakter panjangnya maka string dalam buffer output tersebut akan dihentikan null.

Catatan Kesalahan ini tidak akan dikembalikan jika cchIndexName adalah nol. Silakan lihat bagian Keterangan untuk informasi selengkapnya.

Jika berhasil, nama indeks saat ini dari kursor yang diberikan akan dikembalikan dalam buffer output. Jika JET_wrnBufferTruncated dikembalikan maka buffer output akan berisi sebanyak nama indeks seperti yang akan pas di ruang yang disediakan. Jika buffer output setidaknya satu karakter panjangnya maka string yang dikembalikan dalam buffer tersebut akan dihentikan null. Tidak ada perubahan pada status database yang akan terjadi.

Jika gagal, status buffer output tidak akan terdefinisi. Tidak ada perubahan pada status database yang akan terjadi.

Keterangan

Jika tidak ada indeks saat ini untuk kursor, string kosong akan dikembalikan. Ini dapat terjadi ketika kursor berada pada indeks kluster tabel dan tidak ada indeks utama yang ditentukan. Indeks ini dikenal sebagai indeks berurutan dari tabel dan tidak memiliki definisi. Bagaimanapun, mengatur indeks saat ini ke string kosong menggunakan JetSetCurrentIndex akan memilih indeks berkluster terlepas dari keberadaan definisi indeks utama.

Ada bug penting dalam fungsi ini yang ada di semua rilis. Jika buffer output terlalu kecil untuk menerima seluruh nama indeks dan buffer output setidaknya satu karakter panjangnya maka JET_wrnBufferTruncated TIDAK akan dikembalikan. JET_errSuccess akan dikembalikan sebagai gantinya. Untuk menghindari masalah ini, panjang buffer output harus selalu setidaknya JET_cbNameMost + 1 (65).

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 JetGetCurrentIndexW (Unicode) dan JetGetCurrentIndexA (ANSI).

Lihat juga

JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex