Mendukung Transaksi di OLE DB
Transaksi adalah cara untuk mengelompokkan, atau batch, serangkaian pembaruan ke sumber data sehingga semua berhasil dan dilakukan sekaligus atau (jika salah satu dari mereka gagal) tidak ada yang diterapkan dan seluruh transaksi digulung balik. Proses ini memastikan integritas hasil pada sumber data.
OLE DB mendukung transaksi dengan tiga metode berikut:
Hubungan Sesi dan Transaksi
Satu objek sumber data dapat membuat satu atau beberapa objek sesi, yang masing-masing dapat berada di dalam atau di luar cakupan transaksi pada waktu tertentu.
Ketika sesi tidak memasukkan transaksi, semua pekerjaan yang dilakukan dalam sesi tersebut di penyimpanan data segera dilakukan pada setiap panggilan metode. (Ini terkadang disebut sebagai mode autocommit atau mode implisit.)
Ketika sesi memasuki transaksi, semua pekerjaan yang dilakukan dalam sesi tersebut di penyimpanan data adalah bagian dari transaksi tersebut dan diterapkan atau dibatalkan sebagai satu unit. (Ini terkadang disebut sebagai mode penerapan manual.)
Dukungan transaksi khusus penyedia. Jika penyedia yang Anda gunakan mendukung transaksi, objek sesi yang mendukung ITransaction
dan ITransactionLocal
dapat memasukkan transaksi (tidak berlapis). CSession kelas Templat OLE DB mendukung antarmuka ini dan merupakan cara yang direkomendasikan untuk menerapkan dukungan transaksi di Visual C++.
Memulai dan Mengakhiri Transaksi
Anda memanggil StartTransaction
metode , Commit
, dan Abort
di objek set baris di konsumen.
ITransactionLocal::StartTransaction
Panggilan memulai transaksi lokal baru. Saat Anda memulai transaksi, setiap perubahan yang diamanatkan oleh operasi selanjutnya tidak diterapkan ke penyimpanan data hingga Anda melakukan transaksi.
Memanggil ITransaction::Commit
atau ITransaction::Abort
mengakhiri transaksi. Commit
menyebabkan semua perubahan dalam cakupan transaksi diterapkan ke penyimpanan data. Abort
menyebabkan semua perubahan dalam cakupan transaksi dibatalkan dan penyimpanan data dibiarkan dalam keadaan sebelum transaksi dimulai.
Transaksi Berlapis
Transaksi berlapis terjadi ketika Anda memulai transaksi lokal baru ketika transaksi aktif sudah ada pada sesi. Transaksi baru dimulai sebagai transaksi berlapis di bawah transaksi saat ini. Jika penyedia tidak mendukung transaksi berlapis, memanggil StartTransaction
saat sudah ada transaksi aktif pada sesi akan mengembalikan XACT_E_XTIONEXISTS.
Transaksi Terdistribusi
Transaksi terdistribusi adalah transaksi yang memperbarui data terdistribusi; yaitu, data pada lebih dari satu sistem komputer berjaringan. Jika Anda ingin mendukung transaksi melalui sistem terdistribusi, Anda harus menggunakan .NET Framework daripada dukungan transaksi OLE DB.
Baca juga
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