İş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.
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 ve CommitTrans
Rollback
CDatabase::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 Update
veri 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 , Edit
Update
, ve Delete
için birden çok çağrıdan AddNew
CommitTrans
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.
Not
Şu anda toplu satır getirme işlemi uyguladıysanız sınıf CRecordset
veri kaynağı güncelleştirmelerini desteklemez. Bu, , , Edit
Delete
veya Update
öğesine çağrı AddNew
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'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.
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: