sa.
fb 1.5
Bazen formu açarken(design time) da "no databases are listed in trnsaction component hatası" hatası veriyor.Bazen de runtime da transaction not active hatası veriyor.
active özelliğini design time da true yaptığımda sorun olmuyor.Ama bu active özelliği ne işe yarar.Ne zaman true ve ne zaman false olmalıdır.
teşekkürler.Kolay gelsin
(Tpfibdataset kullanıyorum.Ibdatasete görede cevap verirseniz sevinirim.İyi çalışmalar.)
"no databases are listed in trnsaction component hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
s.a.
design time da
ikinci hata içinse transaction un "AllowAutoStart" özelliğinin true olmadığı için olabilir.(true yapmayı deneyin).
ib/fb de tablolarda yaptığımız işlemler direk veri tabanına yazılmaz. transaction dediğimiz parçalar içerisinde tutulur. daha sonra commit dediğimiz zaman vt ye yazılır.
transaction un active olması demek vt ile ilgili işlem yapılıyor demek. eğer db bileşenleri değilde normal edilerle işlem yapıyorsanız execsql den önce transaction u başlatmalısınız. şöyleki...
eğer burda ibtransaction başlatmazsak program sizin dediğiniz hatayı verir.
umarım yardımcı olabilimişimdir.
kolay gelsin.
design time da
vermesinin sebebi transaaction ve ibdatabase bileşenleri farklı formlarda oldukları ve ibdatabase bileşeninin olduğu form yüklenmediği için olabilir.no databases are listed in trnsaction component hatası
ikinci hata içinse transaction un "AllowAutoStart" özelliğinin true olmadığı için olabilir.(true yapmayı deneyin).
ib/fb de tablolarda yaptığımız işlemler direk veri tabanına yazılmaz. transaction dediğimiz parçalar içerisinde tutulur. daha sonra commit dediğimiz zaman vt ye yazılır.
transaction un active olması demek vt ile ilgili işlem yapılıyor demek. eğer db bileşenleri değilde normal edilerle işlem yapıyorsanız execsql den önce transaction u başlatmalısınız. şöyleki...
Kod: Tümünü seç
ibquery1.sql.add('insert into tablo (adi,soyadi) values ('''edit1.text+''','''+edit2.text+''')');
if not ibtransaction.intransaction then
ibtransaction.starttransaction;
ibquery1.execsql;
ibransaction.commit;
umarım yardımcı olabilimişimdir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
s.a.
ikinci söylediğim hatanın sebebi tarnsaction başlamadan onu commit yada rollback yaptığımdan kaynaklanıyormuş.Sizinde dediğiniz gibi bu işlemlerden önce if ...intransaction ile kontrol ettim önce böylece düzeldi.İkinci hataya gelince bu hata nın ne olduğunu henüz çözemedim.Sizin söylediğiniz gibi olabilir.Ama bunu test edemedim.Çünkü bu hata design time arasıra oluyordu.DataModulü yüklemeden denedim ama hata vermedi.Dolayısı ile ne olduğunu şimdilik anlamadım.Ayrıca cevabınız için çok teşekkür ederim.
Yalnız kafama takılan küçük bişey daha var.Transaction ın Active özelliği.Bu özellik component ilk yüklendiğinde false geliyor.Programcının bu özelliği değiştirmesi gerekir mi. Gerekiyorsa neden ve ne zaman değiştirmelidir.? Teşekkürler. İyi çalışmalar.
ikinci söylediğim hatanın sebebi tarnsaction başlamadan onu commit yada rollback yaptığımdan kaynaklanıyormuş.Sizinde dediğiniz gibi bu işlemlerden önce if ...intransaction ile kontrol ettim önce böylece düzeldi.İkinci hataya gelince bu hata nın ne olduğunu henüz çözemedim.Sizin söylediğiniz gibi olabilir.Ama bunu test edemedim.Çünkü bu hata design time arasıra oluyordu.DataModulü yüklemeden denedim ama hata vermedi.Dolayısı ile ne olduğunu şimdilik anlamadım.Ayrıca cevabınız için çok teşekkür ederim.
Yalnız kafama takılan küçük bişey daha var.Transaction ın Active özelliği.Bu özellik component ilk yüklendiğinde false geliyor.Programcının bu özelliği değiştirmesi gerekir mi. Gerekiyorsa neden ve ne zaman değiştirmelidir.? Teşekkürler. İyi çalışmalar.
siz bir tabloyu open ettiğiniz zaman transaction otomatik olarak active olur(olması lazım). eğer transactionu commit etiğiniz yerde transaction active değilse orda commite gerek yoktur. bu yüzden kodlarınızı biraz kontrol etmenizi tavsiye edeceğim. neden commite ihtiyaz duydunuz ve neden transaction active olmamış bunu belirlemeniz lazım. Tabi eğer zamanınız varsa...
kolay gelsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim