Merhaba arkadaşlar.
Transactionla ilgili bir problemim var bir türlü çözemedim.Yardımcı olursanız sevinirim.
bir fatura kayıt formum var ..form açılırken transactionı başlatıyorum.fatura detayında stok kartını seçmek için stok kartı formunu açtırıyorum.stok kartı formunda yeni bir stok girişi yapıp, bir stok seçiyorum.seçtiğim stok fatura ekranına geliyo ve vazgeç diyerek fatura formundan çıkıyorum. vazgeç butonuyla da transactionu kapatıyorum.sorun şu faturayı kaydetmiyorum ama stok kartında yeni girdiğim stok ta iptal oluyor.bunu nasıl engelleyebilirm.ado kullanıyorum.ado da her açılan form için transaction başlatıp bitirilebilirmi?
teşekkürler.
transaction hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
Öncelikle transactionu bahsettiğiniz şekilde kullanmanızın pek güvenilir olduğunu düşünmüyorum, transactionları kayıt işlemleri sırasında başlatıp işlem sonunuda commit yada hata kontrol bloğu kullanarak sorun olduğundada rollback etmelisiniz bildiğim kadarıylada zaten Transaction amacıda bu veri bütünlüğünü sağlamak ve korumak.Sizin istediğiniz olayı ise Bir UpdateObject ile yapmanız daha sağlıklı olacaktır, yani işlemleri Cache de yapacaksınız kullandığınız Ado bileşeneinin cachedUpdates özelliğini tru yapıp onu bir UpdateObject e bağlayacaksınız işlemler kesinleştiğinide ise commit edeceksiniz.fikir vermiştir inşallah, çünkü veritabanınıdan veri tabanına bu başlatılan transcationların bir timeout süreleri var bunlar değişiklik gösteriyor yani siz bir transactionu başlatıp belli bir süre işlem yapmazsınız ya rollback edilir yada commit edilir ama bu VT den VT ye değişiklik gösterir.Kullanmaya çalıştığınız yöntem, yapmak istediğiniz işlem için uygun değil bence.
Öncelikle transactionu bahsettiğiniz şekilde kullanmanızın pek güvenilir olduğunu düşünmüyorum, transactionları kayıt işlemleri sırasında başlatıp işlem sonunuda commit yada hata kontrol bloğu kullanarak sorun olduğundada rollback etmelisiniz bildiğim kadarıylada zaten Transaction amacıda bu veri bütünlüğünü sağlamak ve korumak.Sizin istediğiniz olayı ise Bir UpdateObject ile yapmanız daha sağlıklı olacaktır, yani işlemleri Cache de yapacaksınız kullandığınız Ado bileşeneinin cachedUpdates özelliğini tru yapıp onu bir UpdateObject e bağlayacaksınız işlemler kesinleştiğinide ise commit edeceksiniz.fikir vermiştir inşallah, çünkü veritabanınıdan veri tabanına bu başlatılan transcationların bir timeout süreleri var bunlar değişiklik gösteriyor yani siz bir transactionu başlatıp belli bir süre işlem yapmazsınız ya rollback edilir yada commit edilir ama bu VT den VT ye değişiklik gösterir.Kullanmaya çalıştığınız yöntem, yapmak istediğiniz işlem için uygun değil bence.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr