Fungsi JetGetSecondaryIndexBookmark
Berlaku untuk: Windows | Windows Server
Fungsi JetGetSecondaryIndexBookmark
Fungsi JetGetSecondaryIndexBookmark mengambil bookmark khusus untuk entri indeks sekunder pada posisi kursor saat ini. Bookmark ini kemudian dapat digunakan untuk memposisikan ulang kursor secara efisien kembali ke entri indeks yang sama menggunakan JetGotoSecondaryIndexBookmark. Ini paling berguna saat memposisikan ulang pada indeks sekunder yang berisi kunci duplikat atau yang berisi beberapa entri indeks untuk rekaman yang sama.
Windows XP: JetGetSecondaryIndexBookmark diperkenalkan di Windows XP.
JET_ERR JET_API JetGetSecondaryIndexBookmark(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_opt void* pvSecondaryKey,
__in unsigned long cbSecondaryKeyMax,
__out_opt unsigned long* pcbSecondaryKeyActual,
__out_opt void* pvPrimaryBookmark,
__in unsigned long cbPrimaryBookmarkMax,
__out_opt unsigned long* pcbPrimaryKeyActual,
__in const JET_GRBIT grbit
);
Parameter
sesid
Sesi yang digunakan untuk panggilan ini.
tableid
Kursor yang digunakan untuk panggilan ini.
pvSecondaryKey
Buffer output yang menerima kunci sekunder.
cbSecondaryKeyMax
Ukuran maksimum, dalam byte, dari buffer output untuk kunci sekunder.
pcbSecondaryKeyActual
Menerima ukuran aktual dalam byte kunci sekunder.
Jika parameter ini NULL, ukuran aktual kunci sekunder tidak akan dikembalikan.
Jika buffer output terlalu kecil, ukuran aktual kunci sekunder akan tetap dikembalikan. Itu berarti bahwa jumlah ini akan lebih besar dari ukuran buffer output.
pvPrimaryBookmark
Buffer output yang menerima bookmark kunci utama.
cbPrimaryBookmarkMax
Ukuran maksimum, dalam byte, dari buffer output untuk bookmark kunci utama.
pcbPrimaryKeyActual
Menerima ukuran aktual, dalam byte, dari marka buku kunci utama.
Jika parameter ini NULL, ukuran aktual bookmark kunci primer tidak akan dikembalikan.
Jika buffer output terlalu kecil, ukuran aktual bookmark kunci primer akan tetap dikembalikan. Itu berarti bahwa jumlah ini akan lebih besar dari ukuran buffer output.
grbit
Disiapkan untuk penggunaan masa mendatang.
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_errBufferTooSmall |
Operasi berhasil diselesaikan, tetapi salah satu buffer output terlalu kecil untuk menerima data yang diminta. Buffer output telah diisi dengan bookmark sebanyak yang sesuai. Ukuran aktual marka buku juga telah dikembalikan, jika diminta. |
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_errNoCurrentIndex |
Kursor saat ini tidak berada pada indeks sekunder. Tidak bermakna untuk mengambil bookmark indeks sekunder ketika kursor saat ini tidak menggunakan indeks sekunder. JetGetBookmark harus digunakan ketika kursor tidak berada di indeks sekunder. |
JET_errNoCurrentRecord |
Kursor tidak diposisikan pada rekaman. Ini dapat terjadi karena berbagai alasan. Misalnya, ini akan terjadi jika kursor saat ini diposisikan setelah rekaman terakhir pada indeks saat ini. |
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, bookmark indeks sekunder untuk entri indeks pada posisi kursor saat ini akan dikembalikan dalam buffer output. Tidak ada perubahan pada status database yang akan terjadi.
Jika gagal, status buffer output dan ukuran aktual marka buku indeks sekunder tidak akan terdefinisi kecuali JET_errBufferTooSmall dikembalikan. Jika JET_errBufferTooSmall dikembalikan, buffer output akan berisi marka buku indeks sekunder sebanyak yang akan cocok di ruang yang disediakan dan ukuran aktual marka buku indeks sekunder akan akurat. Bagaimanapun, tidak ada perubahan pada status database yang akan terjadi.
Keterangan
Marka buku umumnya harus diperlakukan sebagai potongan data buram. Tidak ada upaya yang harus dilakukan untuk mengeksploitasi struktur internal data ini. Namun, properti berikut dapat diketahui tentang semua marka buku ESENT:
Bookmark secara unik mengidentifikasi rekaman dalam tabel tertentu.
Bookmark rekaman tidak akan berubah selama masa pakai rekaman tersebut.
Bookmark rekaman sama dengan kunci rekaman tersebut pada indeks utama di atas tabel yang berisi rekaman tersebut. Jika tidak ada indeks utama yang didefinisikan di atas tabel tersebut, mesin database akan membuat marka bukunya sendiri untuk rekaman.
Marka buku dapat dibandingkan satu sama lain menggunakan memcmp untuk menetapkan urutan relatif mereka dalam indeks utama di atas tabel rekaman sumber. Jika tidak ada indeks utama yang didefinisikan di atas tabel tersebut, pengurutan bookmark relatif dari tabel tersebut tidak bermakna.
Tidak ada artinya untuk membandingkan marka buku rekaman dari tabel yang berbeda satu sama lain.
Bookmark selalu kurang dari atau sama dengan panjang JET_cbBookmarkMost (256) byte sebelum Windows Vista. Pada Windows Vista dan rilis yang lebih baru, marka buku bisa lebih besar. Ukuran maksimum bookmark sama dengan nilai saat ini JET_paramKeyMost + 1.
Kunci umumnya harus diperlakukan sebagai potongan data buram. Tidak ada upaya yang harus dilakukan untuk mengeksploitasi struktur internal data ini. Namun, properti berikut dapat diketahui tentang semua kunci ESENT:
Kunci dapat dibandingkan satu sama lain menggunakan memcmp untuk menetapkan urutan relatif mereka dalam indeks asal di atas tabel entri indeks sumber.
Tidak ada artinya untuk membandingkan kunci entri indeks dari indeks yang berbeda satu sama lain.
Kunci selalu kurang dari atau sama dengan panjang JET_cbKeyMost (255) byte sebelum Windows Vista. Pada Windows Vista dan rilis yang lebih baru, kunci bisa lebih besar. Ukuran maksimum kunci sama dengan nilai JET_paramKeyMost saat ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien |
Memerlukan Windows Vista atau Windows XP. |
Server |
Memerlukan Windows Server 2008 atau Windows Server 2003. |
Header |
Dinyatakan dalam Esent.h. |
Pustaka |
Gunakan ESENT.lib. |
DLL |
Membutuhkan ESENT.dll. |
Lihat juga
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetBookmark
JetGotoSecondaryIndexBookmark
JetRetrieveKey
memcmp
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk