Try
Generatoru çalıştır..
Yeni kayıt numarasını al
Tabloya kayıtları gir
Except
Hata oluştuğunu bildir
RollbackRetaining işlemini yap.
End;
CommitRetaining işlemini yap
işlem Except içine düşünce tabloya kaydı yapmıyor ancak Generator kaydı bir arttırlımış oluyor. tabloda Muhasebe ödendi tablosu ve numaraların kayıt girilmeden artmaması gerekiyor. Bir tabloyu veya SQL işlemini RollBack yapınca Generatoru nasıl rollback yapabilirim ?
Teşekkür ediyorum
-----------------------------------------------------------
Forumda Arama yapınca aynı sorunun cevaplandığını gördüm ve gerekli işlemi öğrendim. sorun çözüldü Yani...
s.a.
generator rollback olmaz. transactionla ilgisi yok generatorun. bağımsız çalışır.
olması zaten mantıklı değil. düşünsene ağ üzerinde aynı anda birkaç kişi insert yaptı generatordan herbiri bir değer aldı. sonra biri rollback yaptığında generator geriyemi düşecek....
bu tarz artanlar için generatoru değil manuel bir artışı kullanmanız lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
@aslangeri gerekeni söyledi. Veri tabanında herhangi bir tutarsızlığa meydan vermemek için her insert olayında anlık olarak Generator alınıp verilen sayı kadar elle ya da dataset aracılığıyla artırılarak veri tabanına kalıcı olarak yazılması sağlanır. Kayıttan vazgeçmede ise yine - (eksi/negatif) değerde bir sayı kadar da azaltma sağlanabilir. Buradaki generatörden amaç PK (Primary Key) alanının eşsizliğini sağlamaktır. Dolaysıyla ardışık olup olmamasının bir önemi yoktur. Bir numaratör gibi kullanmak için başka yöntemler bulmak gerekir. Bir alanın en son değeri alınıp bir artırılabilir. Yine de ağ ortamında kayıt tamamlanmadan rollback olduğunda bunda da sorunlar çıkacaktır. En doğrusu post/commit işlemi sonunda numaratörü elle (generatör de olabilir) artırmak olacaktır.
cvp için tşk ederim. Projede, Muhasebe tablosu var ve o bölüme 46 kullanıcıdan sadece muhasebe yetkisi ( Tahsilat) olan tek kişi erişebiliyor. Onunda yapacağı insert durumlarında sayaç (ID) alanının tek tek artması gerekiyor. eğer arada numara kaçarsa o kayda ait bilgi bulunmadığından akşam alınan kasa dökümünde sorun çıkıyordu. Tek kullanıcı olduğundan da generator ID alanına bağlanmıştı. Yani karışık bir durum. Bu nedenle bazı durumlarda generatorun geri alınması gerekebiliyordu. Allahtan sorunla ilgili yanıtı dün yine forumda arayarak buldum. iyiki böyle bir tartışma platformumuz var. Yöneticilere de tşk etmek gerekir.
En son SAHAN33 tarafından 24 Oca 2008 03:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.