Fungsi JetDelete

Berlaku untuk: Windows | Windows Server

Fungsi JetDelete

Fungsi JetDelete menghapus rekaman saat ini dalam tabel database.

    JET_ERR JET_API JetDelete(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid
    );

Parameter

sesid

Konteks sesi database yang akan digunakan untuk panggilan API.

tableid

Kursor pada tabel database. Baris saat ini akan dihapus.

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_errCallbackFailed

Fungsi panggilan balik gagal dalam beberapa cara. Misalnya, pelanggaran akses dalam fungsi panggilan balik ditangkap dan diterjemahkan ke dalam JET_errCallbackFailed. Kesalahan ini hanya akan dikembalikan oleh Windows XP dan yang lebih baru.

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_errIllegalOperation

Kursor yang ditentukan oleh tableid tidak mendukung penghapusan. Lihat bagian Keterangan.

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_errNoCurrentRecord

Kursor yang ditentukan oleh tableid tidak ada di rekaman.

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_errPermissionDenied

Mesin database tidak memiliki izin yang memadai untuk menghapus rekaman. Ini mungkin terjadi jika file database dibuka dengan akses baca-saja.

JET_errRollbackError

Buffer pembaruan (lihat JetPrepareUpdate) ada, tetapi tidak semua perubahan yang dilakukan pada kolom jenis JET_coltypLongText dan/atau kolom jenis JET_coltypLongBinary dapat digulung balik.

JET_errSessionSharingViolation

Adalah ilegal untuk menggunakan sesi yang sama dari 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_errTransReadOnly

Transaksi adalah transaksi baca-saja, dan tidak mendukung penghapusan.

JET_errVersionStoreOutOfMemory

Operasi gagal karena tidak ada cukup memori untuk menyimpan informasi transaksi tentang pembaruan.

JET_errWriteConflict

Sesi lain sebelumnya telah mengunci rekaman untuk pembaruan. Pembaruan yang dicoba oleh sesi ini akan gagal.

Jika berhasil, mata uang dibiarkan tepat sebelum catatan berikutnya. Jika rekaman yang dihapus adalah yang terakhir dalam tabel, mata uang dibiarkan di akhir tabel (yaitu, setelah rekaman terakhir baru). Jika rekaman yang dihapus adalah satu-satunya rekaman dalam tabel, mata uang diatur ke awal.

Indeks yang sesuai diperbarui secara otomatis.

Jika pembaruan disiapkan (menggunakan JetPrepareUpdate), pembaruan akan dibatalkan. Buffer pembaruan akan direset.

Jika gagal, mata uang tetap tidak berubah. Jika pembaruan disiapkan (lihat JetPrepareUpdate), buffer pembaruan mungkin diatur ulang.

Keterangan

Tidak semua tabel mendukung penghapusan baris. Tabel sementara biasanya tidak mendukung penghapusan baris. Penghapusan rekaman dapat diaktifkan pada tabel sementara karena berbagai alasan, beberapa di antaranya adalah:

  • JET_bitTTUpdatable ditentukan selama pembuatan.

  • Tabel sementara besar dapat mendukung penghapusan jika dibuat dengan JET_bitTTScrollable atau JET_bitTTIndexed. Ambang di mana tabel sementara menjadi "besar" saat ini adalah 64 kilobyte, tetapi dapat diubah dalam rilis mendatang.

Windows XP dan yang lebih baru. Fungsi panggilan balik dapat dipanggil oleh JetDelete, termasuk JET_cbtypBeforeDelete dan JET_cbtypAfterDelete.

Penting untuk memahami dampak melakukan sejumlah besar operasi pembaruan di dalam satu transaksi. Setiap pembaruan ke database harus dilacak oleh mesin database di penyimpanan versi. Penyimpanan versi menyimpan rekaman langsung dari semua versi yang berbeda dari setiap rekaman atau entri indeks dalam database yang dapat dilihat oleh semua transaksi aktif. Versi ini digunakan untuk mendukung kontrol konkurensi multi-versi yang digunakan oleh mesin database untuk mendukung transaksi menggunakan isolasi rekam jepret. Setelah mesin database kelelahan, sumber daya yang digunakan untuk menyimpan versi ini maka tidak dapat lagi menerima perubahan lebih lanjut sampai beberapa transaksi telah menyimpulkan untuk memungkinkan sumber daya ini diklaim kembali. Ketika mesin dalam keadaan ini, semua pembaruan akan gagal dengan JET_errVersionStoreOutOfMemory. Sumber daya yang tersedia untuk mesin database untuk menyimpan versi ini dapat dikontrol menggunakan JetSetSystemParameter dengan JET_paramMaxVerPages dan JET_paramGlobalMinVerPages.

Persyaratan

Persyaratan Nilai

Klien

Membutuhkan 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_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Parameter Sistem