Bagikan melalui


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, , Editatau 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 CommitTransRollback 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 CRecordsetCDatabase 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