Transaksi: Bagaimana Transaksi Memengaruhi Pembaruan (ODBC)
Pembaruan pada sumber data dikelola selama transaksi melalui penggunaan buffer edit (metode yang sama yang digunakan di luar transaksi). Anggota data bidang dari kumpulan rekaman secara kolektif berfungsi sebagai buffer edit yang berisi rekaman saat ini, yang dicadangkan untuk sementara selama AddNew
atau Edit
. Delete
Selama operasi, rekaman saat ini tidak dicadangkan dalam transaksi. Untuk informasi selengkapnya tentang buffer edit dan cara pembaruan menyimpan rekaman saat ini, lihat Recordset: Cara Rekaman Memperbarui Rekaman (ODBC).
Catatan
Jika Anda telah menerapkan pengambilan baris massal, Anda tidak dapat memanggil AddNew
, , Edit
atau Delete
. Anda harus menulis fungsi Anda sendiri untuk melakukan pembaruan pada sumber data. Untuk informasi selengkapnya tentang pengambilan baris massal, lihat Recordset: Mengambil Rekaman secara Massal (ODBC).
Selama transaksi, AddNew
, Edit
, dan Delete
operasi dapat dilakukan atau digulung balik. Efek dan CommitTrans
Rollback
mungkin menyebabkan rekaman saat ini tidak dipulihkan ke buffer edit. Untuk memastikan bahwa rekaman saat ini dipulihkan dengan benar, penting untuk memahami bagaimana CommitTrans
fungsi anggota dan Rollback
bekerja dengan fungsi CRecordset
CDatabase
pembaruan .
Bagaimana CommitTrans Memengaruhi Pembaruan
Tabel berikut menjelaskan efek pada CommitTrans
transaksi.
Bagaimana CommitTrans Memengaruhi Pembaruan
Operasi | Status sumber data |
---|---|
AddNew dan Update , dan kemudian CommitTrans |
Rekaman baru ditambahkan ke sumber data. |
AddNew (tanpa Update ), dan kemudian CommitTrans |
Rekor baru hilang. Rekaman tidak ditambahkan ke sumber data. |
Edit dan Update , dan kemudian CommitTrans |
Pengeditan yang berkomitmen pada sumber data. |
Edit (tanpa Update ), dan kemudian CommitTrans |
Pengeditan pada rekaman hilang. Catatan tetap tidak berubah pada sumber data. |
Delete Kemudian CommitTrans |
Rekaman dihapus dari sumber data. |
Bagaimana Rollback Mempengaruhi Transaksi
Tabel berikut menjelaskan efek pada Rollback
transaksi.
Bagaimana Rollback Mempengaruhi Transaksi
Operasi | Status rekaman saat ini | Anda juga harus | Status sumber data |
---|---|---|---|
AddNew dan Update , lalu Rollback |
Konten rekaman saat ini disimpan sementara untuk memberi ruang bagi rekaman baru. Rekaman baru dimasukkan ke dalam buffer edit. Setelah Update dipanggil, rekaman saat ini dipulihkan ke buffer edit. |
Penambahan sumber data yang dibuat oleh Update dibalik. |
|
AddNew (tanpa Update ), maka Rollback |
Konten rekaman saat ini disimpan sementara untuk memberi ruang bagi rekaman baru. Edit buffer berisi rekaman baru. | Panggil AddNew lagi untuk memulihkan buffer edit ke rekaman baru yang kosong. Atau panggil Move (0) untuk memulihkan nilai lama ke buffer edit. |
Karena Update tidak dipanggil, tidak ada perubahan yang dilakukan pada sumber data. |
Edit dan Update , lalu Rollback |
Versi rekaman saat ini yang tidak diedit disimpan sementara. Pengeditan dilakukan pada konten buffer edit. Setelah Update dipanggil, versi rekaman yang tidak diedit masih disimpan untuk sementara. |
Dynaset: Gulir dari rekaman saat ini lalu kembali untuk memulihkan versi rekaman yang tidak diedit ke buffer edit. Rekam jepret: Panggil Requery untuk merefresh kumpulan rekaman dari sumber data. |
Perubahan pada sumber data yang dibuat oleh Update dibalik. |
Edit (tanpa Update ), maka Rollback |
Versi rekaman saat ini yang tidak diedit disimpan sementara. Pengeditan dilakukan pada konten buffer edit. | Panggil Edit lagi untuk memulihkan versi rekaman yang tidak diedit ke buffer edit. |
Karena Update tidak dipanggil, tidak ada perubahan yang dilakukan pada sumber data. |
Delete Kemudian Rollback |
Isi rekaman saat ini dihapus. | Panggil Requery untuk memulihkan konten rekaman saat ini dari sumber data. |
Penghapusan data dari sumber data dibalik. |
Baca juga
Transaksi (ODBC)
Transaksi: Melakukan Transaksi dalam Recordset (ODBC)
Kelas CDatabase
Kelas CRecordset
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