Aracılığıyla paylaş


İşlem (ODBC)

Bu konu MFC ODBC sınıfları için geçerlidir.

İşlem, veri kaynağına yapılan bir dizi güncelleştirmeyi gruplandırma veya toplu halde işleme alma yoludur; böylece tüm güncellemeler bir kerede gerçekleştirilir veya işlemi geri alırsanız hiçbir güncelleme gerçekleştirilmez. İşlem kullanmazsanız, veri kaynağında yapılan değişiklikler isteğe bağlı olarak işlenmek yerine otomatik olarak işlenir.

Not

Tüm ODBC veritabanı sürücüleri işlemleri desteklemez. Sürücünüzün CanTransact belirli bir veritabanı için işlemleri destekleyip desteklemediğini belirlemek için CDatabase veya CRecordset nesnenizin üye işlevini çağırın. Veri kaynağının CanTransact tam işlem desteği sağlayıp sağlamadığını size söylemediğini unutmayın. Ayrıca, işlemin açık CRecordset nesne üzerindeki etkisini denetlemek için CommitTrans ve Rollback sonrasında CDatabase::GetCursorCommitBehavior ve CDatabase::GetCursorRollbackBehavior işlemlerini de çağırmalısınız.

Bir AddNew nesnenin Edit ve CRecordset üye işlevlerine yapılan çağrılar, çağırdığınızda Updateveri kaynağını hemen etkiler. Delete çağrıları aynı zamanda hemen geçerli olur. Buna karşılık, açıkça CommitTrans öğesine çağrı yapana kadar gerçekleştirilen ancak taahhüt edilmeyen, AddNew, Edit, Update ve Delete için birden çok çağrıyı içeren bir işlem kullanabilirsiniz. Bir işlem oluşturarak, bu tür çağrıları geri alma özelliğini korurken bir dizi çağrı yürütebilirsiniz. Kritik bir kaynak kullanılamıyorsa veya başka bir koşul tüm işlemin tamamlanmasını engelliyorsa, işlemi işlemek yerine geri alabilirsiniz. Bu durumda, işleme ait değişikliklerin hiçbiri veri kaynağını etkilemez.

Not

Şu anda toplu satır getirme işlemi uyguladıysanız sınıf CRecordset veri kaynağı güncelleştirmelerini desteklemez. Bu, AddNew, Edit, Delete veya Update birimine çağrı yapamayacağınız anlamına gelir. Ancak, güncelleştirmeleri gerçekleştirmek için kendi işlevlerinizi yazabilir ve ardından belirli bir işlem içinde bu işlevleri çağırabilirsiniz. Toplu satır getirme hakkında daha fazla bilgi için bkz: Kayıt Kümesi: Kayıtları Toplu Getirme (ODBC).

Not

Kayıt kümenizi etkilemenin yanı sıra, nesnenizle ilişkili ODBC HDBC'yi veya bu HDBC'ye dayalı bir ODBC HSTMT kullandığınız sürece işlemler, doğrudan yürüttüğünüz SQL ifadelerini de etkiler.

İşlemler özellikle aynı anda güncelleştirilecek birden çok kaydınız olduğunda kullanışlıdır. Bu durumda, son güncelleştirme yapılmadan önce bir özel durum oluştuğunda gerçekleşebilir gibi yarım tamamlanmış bir işlemden kaçınmak istiyorsunuz. Bu tür güncelleştirmelerin bir işlem halinde gruplanması, değişikliklerden kurtarma (geri alma) sağlar ve kayıtları işlem öncesi durumuna döndürür. Örneğin, bir banka A hesabından B hesabına para aktarırsa, fonları doğru işlemek için hem A'dan para çekme hem de B'ye yatırılması başarılı olmalıdır veya tüm işlem başarısız olmalıdır.

Veritabanı sınıflarında nesneler aracılığıyla CDatabase işlemler gerçekleştirirsiniz. Nesne CDatabase bir veri kaynağına bağlantıyı temsil eder ve bu CDatabase nesneyle ilişkili bir veya daha fazla kayıt kümesi, kayıt kümesi üye işlevleri aracılığıyla veritabanının tablolarında çalışır.

Not

Yalnızca bir işlem düzeyi desteklenir. İşlemleri iç içe yerleştiremez veya bir işlem birden çok veritabanı nesnesine yayılamaz.

Aşağıdaki konular, işlemlerin nasıl yapıldığı hakkında daha fazla bilgi sağlar:

Ayrıca bkz.

Açık Veritabanı Bağlantısı (ODBC)