Fungsi JetUpdate2
Berlaku untuk: Windows | Windows Server
Fungsi JetUpdate2
Fungsi JetUpdate2 melakukan operasi pembaruan termasuk menyisipkan baris baru ke dalam tabel atau memperbarui baris yang sudah ada. Fungsi ini berisi daftar opsi grbit yang dapat diatur saat melakukan pembaruan. Menghapus baris tabel dilakukan dengan memanggil JetDelete.
Windows Server 2003: JetUpdate2 diperkenalkan di Windows Server 2003.
JetUpdate2 adalah langkah terakhir dalam melakukan penyisipan atau pembaruan. Pembaruan dimulai dengan memanggil JetPrepareUpdate lalu dengan memanggil JetSetColumn atau JetSetColumns satu atau beberapa kali untuk mengatur status rekaman. Akhirnya, JetUpdate2 dipanggil untuk menyelesaikan operasi pembaruan. Indeks hanya diperbarui oleh JetUpdate atau JetUpdate2, dan bukan selama JetSetColumn atau JetSetColumns.
JET_ERR JET_API JetUpdate2(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_opt void* pvBookmark,
__in unsigned long cbBookmark,
__out_opt unsigned long* pcbActual,
__in const JET_GRBIT grbit
);
Parameter
sesid
Sesi yang digunakan untuk panggilan ini.
tableid
Kursor yang digunakan untuk panggilan ini.
pvBookmark
Penunjuk ke bookmark yang dikembalikan untuk baris yang disisipkan.
cbBookmark
Ukuran buffer yang diacu oleh pvBookmark.
pcbActual
Ukuran bookmark yang dikembalikan untuk baris yang disisipkan yang dikembalikan dalam pvBookmark.
grbit
Sekelompok bit yang berisi opsi yang akan digunakan untuk panggilan ini, yang mencakup nol atau beberapa hal berikut ini.
Nilai |
Makna |
---|---|
JET_bitUpdateCheckESE97Compatibility |
Bendera ini menyebabkan pembaruan mengembalikan kesalahan jika pembaruan tidak akan dimungkinkan di ESE versi Windows 2000, yang memberlakukan jumlah maksimum instans kolom multinilai yang lebih kecil di setiap rekaman daripada versi ESE yang lebih baru. Ini hanya penting untuk aplikasi yang ingin mereplikasi data antara aplikasi yang dihosting di Windows 2000 dan aplikasi yang dihosting di Windows Server 2003, atau versi ESE yang lebih baru. Seharusnya tidak diperlukan untuk sebagian besar aplikasi. |
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 |
Buffer yang diberikan untuk marka buku rekaman tidak cukup besar untuk menyimpan marka buku rekaman. |
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_errDiskFull |
Operasi pembaruan memerlukan pertumbuhan file database, atau alokasi file log, tetapi drive disk tempat file database atau seri log berada penuh. Atau, file database berada pada volume berformat FAT32 dan file database sudah 4GBytes, batas per file untuk FAT32. |
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. Windows XP: Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru. |
JET_errInvalidParameter |
Parameter persiapan yang diberikan dalam fungsi JetPrepareUpdate bukan bendera yang valid. |
JET_errKeyDuplicate |
Kunci indeks untuk rekaman ini adalah duplikat kunci indeks lain untuk rekaman lain yang sudah ada dalam tabel dan indeks tidak mengizinkan duplikat. |
JET_errKeyTruncated |
Rekaman yang disisipkan atau diperbarui memiliki satu atau beberapa indeks yang kunci yang dihasilkan akan melebihi ukuran maksimum yang diizinkan. Akibatnya, operasi gagal mencegah pemotokan kunci. |
JET_errMultiValuedIndexViolation |
Catatan yang disisipkan atau diperbarui memiliki kolom multinilai terindeks dengan dua nilai atau lebih yang identik dalam ukuran kunci panjang maksimum yang ditetapkan untuk indeks. Akibatnya, rekaman memiliki dua entri identik dalam indeks yang tidak valid. |
JET_errNotInitialized |
Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi belum diinisialisasi. |
JET_errNullInvalid |
Satu atau beberapa kolom dalam rekaman yang akan disisipkan atau dalam status diperbarui dari rekaman yang diganti adalah NULL yang melanggar batasan yang ditentukan untuk kolom tersebut. |
JET_errNullKeyDisallowed |
Satu atau beberapa indeks didefinisikan untuk tidak mengizinkan kunci NULL dan status rekaman yang disisipkan atau diperbarui yang diganti melanggar batasan yang ditentukan ini. |
JET_errRecordPrimaryChanged |
Operasi penggantian rekaman telah memperbarui kunci primer. Updates ke kolom kunci primer harus dilakukan dengan menghapus rekaman yang ada dan menyisipkan rekaman baru dengan data yang diinginkan. |
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. Windows XP: 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_errUpdateNotPrepared |
JetPrepareUpdate dipanggil dengan JET_prepCancel tetapi kursor tidak dalam keadaan siap. |
JET_errWriteConflict |
Operasi penggantian rekaman yang kunci tulisnya belum dialokasikan dapat mengalami konflik tulis pada saat pembaruan. |
Jika berhasil, operasi pembaruan terbuka pada kursor selesai. Jika kolom kenaikan otomatis ditentukan untuk tabel, maka nilai ini diatur untuk rekaman yang disisipkan. Jika kolom versi ditentukan untuk tabel, maka nilainya diinisialisasi untuk rekaman yang baru disisipkan, atau dinaikkan setiap kali rekaman diganti. Semua indeks, termasuk indeks berkluster dan non-kluster diperbarui.
Jika gagal, tidak ada perubahan apa pun yang dilakukan pada database. Sebelum menyisipkan dan sebelum mengganti fungsi panggilan balik mungkin telah dipanggil, tetapi setelah menyisipkan dan setelah mengganti panggilan balik tidak akan dipanggil, karena yang terakhir tidak dapat menyebabkan pembaruan gagal. Buffer salinan kursor dibiarkan dalam status siap, sehingga peluang ada untuk secara bertahap memperbaiki masalah yang menyebabkan kesalahan dan mencoba kembali operasi pembaruan.
Keterangan
Batasan ukuran rekaman diberlakukan oleh JetSetColumn, dan bukan secara umum oleh JetUpdate. Satu-satunya pengecualian adalah ketika bendera kompatibilitas JET_bitUpdateCheckESE97Compatibility sedang digunakan. Dalam hal ini, seluruh catatan diperiksa karena operasi JetSetColumn individu yang melebihi batas dapat dikompensasi oleh panggilan berikutnya ke JetSetColumn.
Lihat bagian Keterangan di JetUpdate untuk informasi selengkapnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien |
Membutuhkan Windows Vista. |
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_SESID
JET_TABLEID
JetDelete
JetPrepareUpdate
JetRegisterCallback
JetRetrieveColumn
JetRetrieveColumns
JetSetColumn
JetSetColumns
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