Aracılığıyla paylaş


ODBC'de İşlem Gerçekleştirme

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Önemli

SQL Server Yerel İstemcisi (SNAC) şu şekilde gönderilmez:

  • SQL Server 2022 (16.x) ve sonraki sürümleri
  • SQL Server Management Studio 19 ve sonraki sürümleri

YENI uygulama geliştirme için SQL Server Yerel İstemcisi (SQLNCLI veya SQLNCLI11) ve SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) önerilmez.

Yeni projeler için aşağıdaki sürücülerden birini kullanın:

SQL Server Veritabanı Altyapısı'nın (sürüm 2012 ile 2019 arasında) bir bileşeni olarak gelen SQLNCLI için bu Destek Yaşam Döngüsü özel durumu konusuna bakın.

ODBC'deki işlemler bağlantı düzeyinde yönetilir. Bir uygulama bir işlemi tamamladığında, bu bağlantıdaki tüm deyim tanıtıcıları aracılığıyla tamamlanan tüm işleri işler veya geri alır. Bir işlemi işlemek veya geri almak için uygulamaların COMMIT veya ROLLBACK deyimi göndermek yerine SQLEndTran çağrısı yapması gerekir.

Bir uygulama, iki ODBC işlem yönetimi modu arasında geçiş yapmak için SQLSetConnectAttr'i çağırır:

  • Otomatik komut modu

    Her deyim başarıyla tamamlandığında otomatik olarak işlenir. Otomatik komut modunda çalıştırdığınızda, başka işlem yönetimi işlevi gerekmez.

  • El ile işleme modu

    Yürütülen tüm deyimler , SQLEndTran çağrılarak özel olarak durdurulana kadar aynı işleme dahil edilir.

Otomatik komut modu ODBC için varsayılan işlem modudur. Bağlantı yapıldığında, otomatik komut modunu kapalı ayarlayarak el ile işleme moduna geçmek için SQLSetConnectAttr çağrılana kadar otomatik komut modunda olur. Bir uygulama otomatik komutu kapattığında, veritabanına gönderilen sonraki deyim bir işlem başlatır. Ardından uygulama SQL_COMMIT veya SQL_ROLLBACK seçenekleriyle SQLEndTran çağırana kadar işlem etkin kalır. SQLEndTran'ın sonraki işlemi başlatmasının ardından veritabanına gönderilen komut.

Bir uygulama el ile işlemeden otomatik komut moduna geçerse, sürücü şu anda bağlantıda açık olan tüm işlemleri işler.

ODBC uygulamaları BEGIN TRANSACTION, COMMIT TRANSACTION veya ROLLBACK TRANSACTION gibi Transact-SQL işlem deyimlerini kullanmamalıdır çünkü bu sürücüde belirsiz bir davranışa neden olabilir. ODBC uygulaması otomatik komut modunda çalışmalı ve hiçbir işlem yönetimi işlevini veya deyimini kullanmamalı ya da işlemleri işlemek veya geri almak için el ile işleme modunda çalışmalı ve ODBC SQLEndTran işlevini kullanmalıdır.