Aracılığıyla paylaş


İşlem Desteği

İşlemler için destek derecesi sürücü tanımlıdır. ODBC, verilerinde birden çok güncelleştirmeyi yönetmeye gerek olmayan tek kullanıcılı veya masaüstü veritabanında uygulanacak şekilde tasarlanmıştır. Ayrıca, işlemleri destekleyen bazı veritabanları bunu yalnızca SQL'in Veri İşleme Dili (DML) deyimleri için yapar; bir işlem etkin olduğunda Veri Tanım Dili (DDL) kullanımıyla ilgili kısıtlamalar veya özel işlem semantiği vardır. Başka bir ifadeyle, bir işlem sırasında tabloların sayısını ve tanımını değiştirmek için değil, tablolarda birden çok eşzamanlı güncelleştirme için işlem desteği olabilir.

Uygulama, sqlGetInfo'ya SQL_TXN_CAPABLE seçeneğiyle çağrı yaparak işlemlerin desteklenip desteklenmediğini, DDL'nin bir işleme dahil edilip edilemeyeceğini ve DDL'nin bir işleme dahil edilebilmesinin özel etkilerini belirler. Daha fazla bilgi için bkz. SQLGetInfo işlev açıklaması.

Sürücü işlemleri desteklemiyorsa ancak uygulamanın verileri kilitleme ve kilidini açma özelliği (ODBC dışında bir API kullanarak) varsa, uygulamalar kayıtları ve tabloları gerektiği gibi kilitleyip kilidini açarak işlem desteği sağlayabilir. Hesap aktarımı örneğini uygulamak için, uygulama her iki hesabın kayıtlarını kilitler, geçerli değerleri kopyalar, ilk hesabı hesaplar, ikinci hesaba kredi verir ve kayıtların kilidini açar. Herhangi bir adım başarısız olursa, uygulama kopyaları kullanarak hesapları sıfırlar.

İşlemleri destekleyen veri kaynakları bile belirli bir ortamda aynı anda birden fazla işlemi destekleyemeyebilir. Uygulamalar, bir veri kaynağının aynı ortamda birden fazla bağlantı üzerinde eşzamanlı etkin işlemleri destekleyip desteklemediğini belirlemek için SQL_MULTIPLE_ACTIVE_TXN seçeneğiyle SQLGetInfo'yı çağırır. Bağlantı başına bir işlem olduğundan, bu yalnızca aynı veri kaynağına birden çok bağlantısı olan uygulamalar için ilginçtir.