Melakukan Transaksi di ODBC

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan aplikasi baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server atau Microsoft ODBC Driver terbaru untuk SQL Server ke depannya. Untuk SQLNCLI yang dikirim sebagai komponen SQL Server Database Engine (versi 2012 hingga 2019), lihat pengecualian Siklus Hidup Dukungan ini.

Transaksi di ODBC dikelola pada tingkat koneksi. Ketika aplikasi menyelesaikan transaksi, aplikasi menerapkan atau mengembalikan semua pekerjaan yang diselesaikan melalui semua handel pernyataan pada koneksi tersebut. Untuk menerapkan atau mengembalikan transaksi, aplikasi harus memanggil SQLEndTran alih-alih mengirimkan pernyataan COMMIT atau ROLLBACK.

Aplikasi memanggil SQLSetConnectAttr untuk beralih di antara dua mode ODBC dalam mengelola transaksi:

  • Mode autocommit

    Setiap pernyataan secara otomatis diterapkan ketika berhasil diselesaikan. Saat Anda berjalan dalam mode autocommit, tidak ada fungsi manajemen transaksi lain yang diperlukan.

  • Mode penerapan manual

    Semua pernyataan yang dijalankan disertakan dalam transaksi yang sama sampai secara khusus dihentikan dengan memanggil SQLEndTran.

Mode autocommit adalah mode transaksi default untuk ODBC. Ketika koneksi dibuat, koneksi berada dalam mode autocommit hingga SQLSetConnectAttr dipanggil untuk beralih ke mode penerapan manual dengan mengatur mode autocommit nonaktif. Saat aplikasi menonaktifkan autocommit, pernyataan berikutnya yang dikirim ke database memulai transaksi. Transaksi kemudian tetap berlaku sampai aplikasi memanggil SQLEndTran dengan opsi SQL_COMMIT atau SQL_ROLLBACK. Perintah yang dikirim ke database setelah SQLEndTran memulai transaksi berikutnya.

Jika aplikasi beralih dari penerapan manual ke mode autocommit, driver melakukan transaksi apa pun yang saat ini terbuka pada koneksi.

Aplikasi ODBC tidak boleh menggunakan pernyataan transaksi Transact-SQL seperti BEGIN TRANSACTION, COMMIT TRANSACTION, atau ROLLBACK TRANSACTION karena hal ini dapat menyebabkan perilaku yang tidak ditentukan dalam driver. Aplikasi ODBC harus berjalan dalam mode autocommit dan tidak menggunakan fungsi atau pernyataan manajemen transaksi apa pun, atau berjalan dalam mode penerapan manual dan menggunakan fungsi ODBC SQLEndTran untuk menerapkan atau mengembalikan transaksi.

Lihat Juga

Melakukan Transaksi (ODBC)