ibtransaction sorunu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
savasgti
Üye
Mesajlar: 103
Kayıt: 07 Eki 2008 06:13

ibtransaction sorunu

Mesaj gönderen savasgti »

Merhaba arkadaşlar herkese kolay gelsin öncelikle.
Şimdiye kadar firebird ile bir proje yaptım ibdatabase ve ibtransaction kullandım birde ibtable kullandım fakat bazen kayıtlar uçuyor silinmiyor sanırım sorunum ibtransaction u kullanmayı bilmediğimden kaynaklı daha doğrusu transaction mantığını bilmediğimden kaynaklanıyor. şimdi sorum şu öncelikle transaction mantığını anlatabilecek elinizde döküman tarzı bişi varsa yardımcı olabilirmisiniz. Sonrasında ise ibtransaction un normal şartlarda şu şekilde mi ayarlanması mı gerekli
1-) Transaction properties read committed özelliği seçili olacak read_committed rec_version nowait
2-) defaultaction özelliği TACommitRetaining olacak
3-) autostopaction özelliği TACommitRetaining olacak
doğrumudur. ben bunların hiç biriyle oynamamıştım varsayılan kalmıştı.
Bir table kullanmıyorum artık ibsql ibquery ile kayıt eklerken ekstra bi kod yazmam gereklimi transaction için commited gibi.
Bi diğeri ise :d bu işlemler sonucunda kayıt kilitleme otomatik gerçekleşirmi.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: ibtransaction sorunu

Mesaj gönderen White Rose »

transaction ayarlarınız doğru ancak kayıtların veritabanına yazılması için transaction'un bağlı olduğu tablenin afterpost ve afterdelete olaylarına transaction.commitretaining; yazın.
tablenin queryden farkı veritabanı ile ilgili işlemleri arkaplanda otomatik yapmasıdır. Query de her olay için (kayıt, ekleme, düzeltme, listeleme) sizin sql kodları yamanız gerekir
savasgti
Üye
Mesajlar: 103
Kayıt: 07 Eki 2008 06:13

Re: ibtransaction sorunu

Mesaj gönderen savasgti »

forumdaki araştırmalarım sonucu table ve query yanlış doğru olan ibdataset yalnız bi problemim var master detail ibdataset ile yardımcı olurmusunuz. aslında ben şu şekilde çözdüm master detail i forun onshow olayına ve master ibdataset in afterscrool olayına

Kod: Tümünü seç

  with IBDataSet2 do
  begin
    close;
    SelectSQL.Clear;
    SelectSQL.Add('select * from tblnotlar');
    SelectSQL.Add('where tblkimlik_id ='+QuotedStr(IBDataSet1.FieldByName('id').AsString));
    open;
  end;
bu kodu yazdım
birde detail in beforpost una

Kod: Tümünü seç

  if (IBDataSet2.State in [dsInsert]) then
    ibdataset2.FieldByName('tblkimlik_id').AsInteger := ibdataset1.FieldByName('id').AsInteger;
bu kodu yazdım ve çözüldü fakat daha kolayı varmıdır veya bu yöntem sağlıklımıdır bilmiyorum.
savasgti
Üye
Mesajlar: 103
Kayıt: 07 Eki 2008 06:13

Re: ibtransaction sorunu

Mesaj gönderen savasgti »

master ı grid yaptığımda son kayıttan sonra birkez daha ilerlersem hata veriyor tabi.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: ibtransaction sorunu

Mesaj gönderen White Rose »

forumda master veya detail diye arama yapın bu konuda çok bilgi bulacaksınız
ayrıca:

viewtopic.php?t=9830
Cevapla