Aracılığıyla paylaş


İşlem (ODBC)

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

İşlem, işlemi geri alırsanız tümünün bir kerede işlenmesini veya hiçbirinin işlenmemesi için veri kaynağı güncelleştirmelerini gruplandırma veya toplu işlem gerçekleştirmenin bir yoludur. İşlem kullanmazsanız, veri kaynağında yapılan değişiklikler isteğe bağlı olarak işlenmek yerine otomatik olarak işlenir.

Dekont

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 ve CommitTransRollbackCDatabase::GetCursorRollbackBehavior sonrasını da çağırmalısınızCDatabase::GetCursorCommitBehavior.

Bir CRecordset nesnenin AddNew ve Edit üye işlevlerine yapılan çağrılar, çağırdığınızda Updateveri kaynağını hemen etkiler. Delete çağrıları da hemen etkinleşir. Buna karşılık, açıkça çağırana kadar gerçekleştirilen ancak işlenmeyen , EditUpdate, ve Deleteiçin birden çok çağrıdan AddNewCommitTrans oluşan 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.

Dekont

Şu anda toplu satır getirme işlemi uyguladıysanız sınıf CRecordset veri kaynağı güncelleştirmelerini desteklemez. Bu, , , EditDeleteveya Updateöğesine çağrı AddNewyapamayacağı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).

Dekont

Kayıt kümenizi etkilemenin yanı sıra, nesnenizle ilişkili ODBC HDBC'yi veya bu HDBC'yi temel alan bir ODBC HSTMT'yi kullandığınız sürece işlemler doğrudan yürüttüğünüz CDatabase SQL deyimlerini 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.

Dekont

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)