Bagikan melalui


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 StartTransactionmetode , 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

Menggunakan Accessors