"no databases are listed in trnsaction component hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

"no databases are listed in trnsaction component hatası

Mesaj gönderen ylmz »

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.)
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
design time da
no databases are listed in trnsaction component hatası
vermesinin sebebi transaaction ve ibdatabase bileşenleri farklı formlarda oldukları ve ibdatabase bileşeninin olduğu form yüklenmediği için olabilir.
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;
eğer burda ibtransaction başlatmazsak program sizin dediğiniz hatayı verir.

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
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

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.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

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.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla