Selamlar,
IBTransaction.CommitRetaining idi galiba bunu denediniz mi?
Commit Reteaning ile Aktif transactionları diske (Server'a commit) etmesini sağlar. Bir de bunu deneyin.
Ama Auto Incremental olaylarda Generator kullanın. Generator'Un amacı bu !...
Kolay Gelsin.
deadlock hatası
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Selamlar
Bende aynı sorunla karşı karşıyayım.
Stok girerken iki ayrı makinede program kullanıyorken birinde Deadlock hatası veriyor. bu hatadan sonra diğeri de giremiyor. Programı kapatıp açtığında bir kaç stok o şekilde girilebiliyor sonra tekrar aynı hata ile karşılaşılıyor.
şeklinde kayıtlarımı yapıyorum. Deadlock hatası verdiğinde yeni bir stok kodu ilede devam etmeye çalışsam yine aynı hata devam ediyor. Programı kapatıp açmak gerikiyor. Biraz karışık bir durum oldu.
Database de ref alanı var burası Generator tarafından değeri arttırılıyor.
kod alanı primary key.
Yardımlarınız için şimdiden teşekür ederim.
Bende aynı sorunla karşı karşıyayım.
Stok girerken iki ayrı makinede program kullanıyorken birinde Deadlock hatası veriyor. bu hatadan sonra diğeri de giremiyor. Programı kapatıp açtığında bir kaç stok o şekilde girilebiliyor sonra tekrar aynı hata ile karşılaşılıyor.
Kod: Tümünü seç
IBTable1.Insert;
IBTable1MIKTAR.AsInteger:=1;
IBTable1KOD.AsString:=edit1.Text;
IBTable1GRUPKODU.AsString:=dxLookupEdit1.Text;
IBTable1SATICIKODU.AsString:=dxLookupEdit3.LookupKeyValue;
.
.
.
IBTable1PAR.AsString:=ComboBox9.Text;
if not DM.tr.InTransaction then dm.tr.StartTransaction;
if dm.tr.InTransaction then DM.tr.Commit;
Database de ref alanı var burası Generator tarafından değeri arttırılıyor.
kod alanı primary key.
Yardımlarınız için şimdiden teşekür ederim.
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56
ben de ibdataset bileşenini kullanıyorum. dead lock hatasını mesela kayıt sildiğiniz zaman başka bir kullanıcı o kayıt üzerindeyken işlem yapacağı zaman veriyor. bu da normal bir durum gibi. sonra herhangi dead lock hatası falan vermiyor. ibdataset bileşenini kullanmanı öneririm. orada kayıt eklemeler,silmeler falan daha sağlıklı.
Öncelikle IBX i update edin, hata burdan kaynaklanıyor demek değil ama mutlaka update edin.
aksine belirtilmediği sürece itransaction lar otomatik başlar, Ayrıca commitretaing kullanın. Hatalar muhtemlene transaction kurgularından kaynaklanıyor. Hangi query grubuna hangi transactionlar bağlı parametreleri neler, bunları kontrol edin, AfterPos ve AfterDelete ten sonra commitretaing aftercansel dan sonrada rollbackretaing yapmayı unutmayın. Tabi bu genelleme, tasarıma göre değişir. Mesela ben fiş mantığı olan formlarda detail ver masterları bağladığım Transation ı ayrıca button a bağlıyorum kullanıcı ya commit yada rollback edebilir
kolay gele
Kod: Tümünü seç
if not DM.tr.InTransaction then dm.tr.StartTransaction;
if dm.tr.InTransaction then DM.tr.Commit;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Selamlar,
Interbase complarını kullanmaktan vaz geçerek sorunumu halletim. FIB componentleri ile programı değiştirdim. Şu anda bir sorun gözükmüyor.
freeman35 Abimizin dediği Update işini yapmadım ama bir iki linkte bu sorunu düzeletiğini gördüm, eğer update eder ve sorun çıkmazsa tekrar buraya yazarım.
İlginize teşekkür ederim.
Interbase complarını kullanmaktan vaz geçerek sorunumu halletim. FIB componentleri ile programı değiştirdim. Şu anda bir sorun gözükmüyor.
freeman35 Abimizin dediği Update işini yapmadım ama bir iki linkte bu sorunu düzeletiğini gördüm, eğer update eder ve sorun çıkmazsa tekrar buraya yazarım.
İlginize teşekkür ederim.