Fungsi JetGetBookmark

Berlaku untuk: Windows | server Windows

Fungsi JetGetBookmark

Fungsi JetGetBookmark mengambil bookmark untuk rekaman yang terkait dengan entri indeks pada posisi kursor saat ini. Marka buku ini kemudian dapat digunakan untuk memposisikan ulang kursor tersebut kembali ke rekaman yang sama menggunakan JetGoToBookmark.

    JET_ERR JET_API JetGetBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out_opt     void* pvBookmark,
      __in          unsigned long cbMax,
      __out_opt     unsigned long* pcbActual
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

tableid

Kursor yang digunakan untuk panggilan ini.

pvBookmark

Buffer output yang menerima bookmark.

cbMax

Ukuran maksimum, dalam byte, dari buffer output.

pcbActual

Ukuran aktual, dalam byte, dari bookmark.

Jika parameter ini ADALAH NULL , maka ukuran aktual bookmark tidak akan dikembalikan.

Jika buffer output terlalu kecil, ukuran aktual bookmark akan tetap dikembalikan. Itu berarti bahwa jumlah ini akan lebih besar dari ukuran 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 Parameter Kesalahan mesin Storage yang Dapat Diperluas dan Penanganan Kesalahan.

Mengembalikan kode

Deskripsi

JET_errSuccess

Operasi berhasil diselesaikan.

JET_errBufferTooSmall

Operasi berhasil diselesaikan, tetapi buffer output terlalu kecil untuk menerima seluruh bookmark. Buffer output telah diisi dengan bookmark sebanyak yang sesuai. Ukuran aktual marka buku juga telah dikembalikan, jika diminta.

JET_errClientRequestToStopJetService

Operasi tidak dapat diselesaikan karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errInstanceUnavailable

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut.

Windows XP: Nilai pengembalian ini diperkenalkan di Windows XP.

JET_errNoCurrentRecord

Kursor tidak diposisikan pada rekaman. Hal ini dapat terjadi karena berbagai alasan. Misalnya, ini akan terjadi jika kursor diposisikan setelah rekaman terakhir pada indeks saat ini.

JET_errNotInitialized

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errRestoreInProgress

Operasi tidak dapat diselesaikan 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.

Windows XP: Nilai pengembalian ini diperkenalkan di Windows XP.

JET_errTermInProgress

Operasi tidak dapat diselesaikan karena instans yang terkait dengan sesi sedang dimatikan.

Jika fungsi ini berhasil, bookmark untuk rekaman yang terkait dengan entri indeks pada posisi kursor saat ini akan dikembalikan dalam buffer output. Tidak ada perubahan pada status database yang akan terjadi.

Jika fungsi ini gagal, status buffer output dan ukuran aktual bookmark akan tidak terdefinisi kecuali JET_errBufferTooSmall dikembalikan. Jika JET_errBufferTooSmall dikembalikan, buffer output akan berisi marka buku sebanyak yang akan sesuai dengan ruang yang disediakan dan ukuran bookmark aktual akan akurat. 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, kondisi berikut ini berlaku untuk semua marka buku ESENT:

  • Marka buku 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 fungsi 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, tidak bermakna untuk menggunakan urutan relatif marka buku dari tabel tersebut.

  • 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.

Windows Vista: Pada rilis Windows Vista dan yang lebih baru, marka buku bisa lebih besar dari JET_cbBookmarkMost (256) byte. Ukuran maksimum bookmark sama dengan nilai saat ini JET_paramKeyMost + 1.

Persyaratan

Persyaratan Nilai

Klien

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

Server

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

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Lihat juga

JET_ERR
JET_SESID
JET_TABLEID
JetGoToBookmark
JetStopService
memcmp