insertle tableye kayıt açıyor fakat editle değişmiyor.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

insertle tableye kayıt açıyor fakat editle değişmiyor.

Mesaj gönderen bgoktas » 03 May 2004 09:09

Merhabalar...
ibtable kullandığım projemde

Kod: Tümünü seç

 data.tblgircik.Insert;
           data.tblgircikSICILNO.AsString:=data.qryhareketSICILNO.AsString;
           data.tblgircikTARIH.AsDateTime:=data.qryhareketTARIH.AsDateTime;
           if data.qryhareketGCKOD.AsString='0' then
           begin
            data.tblgircikHAR1.AsString:=timetostr(data.qryhareketSAAT.asdatetime);
            tmphar:=2;
           end else
           begin
            data.tblgircikHAR2.AsString:=timetostr(data.qryhareketSAAT.asdatetime);
            tmphar:=3;
           end;
          data.tblgircik.Post;
yaptığımda tableye bir kayıt açıyor aynı kayıta;

Kod: Tümünü seç

data.tblgircik.Edit;
    case tmphar of
      1:data.tblgircikHAR1.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);
      2:data.tblgircikHAR2.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);
      3:data.tblgircikHAR3.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);
      4:data.tblgircikHAR4.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);
      5:data.tblgircikHAR5.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);
      6:data.tblgircikHAR6.AsString:=timetostr(data.qryhareketSAAT.Asdatetime);

    end;

      tmphar:=tmphar+1;
    data.tblgircik.Post;
yaptığımda datayı güncellemiyor. böyle birşey daha önce başıma hiç gelmedi. Yanlız daha ilginçi tblgircik in bağlı olduğu gridde datayı düzgün gösteriyor. Arka planda tableye ems'den bakıyorum fakat datada sadece insert ile açılan satırlar var. editle yapılan değişiklikler yok.
İlgilenenlere teşekkürler...

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 10:41

IBtransaction bağlantısını yaptınız mı ? Verdiğiniz kodda bununla ilgili bir alan bölüm göremedim.

Insert işlemini yapabildiğinizi yazmışınız. Yine transactions işlemi yoktu, ama nasıl kayıt yapabilğinizi bilemiyorum.
Çünki Post işlemleri Table kayıt yaptırmıyor. Kayıtlar, Transactions alanında tutuluyır. Şayet IBTransaction1.CommitRetaining demediğiniz müddeçede burada kalıyorlar.
Ayrıca IBTransaction1.RollbackRetaining ilede kayıtlar geriye almanız mümkün.

Sace Commit veya Rollback de vardır. Ama tavsiyem Retaining ile kullanmanızdır. böylece aynı transactionu birden fazla kullanabiliyorsunuz. diğertürlü Transactionı yeniden set etmeniz gerekebilir.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 10:45

afterpost olayında IBTransaction1.CommitRetaining;
kullanıyorum.

Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 03:44
Konum: İstanbul

Mesaj gönderen gkimirti » 03 May 2004 10:47

interbase kullanıyorsan
AfterPostta CommitRetaining calıstır.
muhtemelen transaction tamamlanmıyor.
ÜŞENME,ERTELEME,VAZGEÇME
Oğlum Yusuf'un yeni oyunu :mrgreen: Google Play üzerinde
Linear Minimalist Puzzle ve Smash Drift
👉 https://goo.gl/8S31tD 👈
👉 http://bit.ly/2OJos6P 👈

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 10:49

after posta
IBTransaction1.CommitRetaining;
yazıyorum

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 10:50

O zaman IBTransaction1 in yapılandırmalarına bakın. Read comitted mı? Ayrıca. Bazan atlana biliyor.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 10:53

transaction ayarları;

active:true
defaultaction:TACommit;
defaultdatabase:datapdks;
IdleTimer:0
Name:Ibtransaction1;

bir yanlışlık yok gibi;

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 11:02

IBtransaction üzerinde çift klik yaparak Trancrtion editt kısmını açın. Ve oradan Read committed alanını seçiniz. Birde bu kontrolü yaparsanız.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 11:07

Abi yok yine olmadı.
Ayrıca bu Read committed nedir. Acaba

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 11:17

Transaction burada yaptığınız seçimler üzerinden yürtüyor.
Şayet read committed derseniz, Okuyup yazmanızda sakınca çıkmıyor.

Sanpshot derseniz. Table veya queryler için sadece görüntü kopya alıyor, ayrıca üzerinde işlem yapamanıza çok imkan sağlamıyor.

Read Only seçeneği ile sadece okuya biliyorsunuz. Yazmanın önüne geçiyor.

Write only ilede sadece kayıt yapabiliyorsunuz. Bir kaynakta bu konuda daha ziyade kullanıcı haklarında kullanıldığı hakında bilgi vardı.

Şu an için hatanız hakkında başka bir yorumum olamayacak,

Aklıma gelen editin kayıt işleminden sonra EMS içinde Transaction commit yapıp yapmadığınız. O da table üzerinde sürekli bir refresh işlemini yapmıyor.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 11:23

Ems de sürekli refresh ediyorum. fakat olmuyor.
yani işin ilginç yanı bu edit edilen bilgileri nasıl oluyorda gridde gösteriyor. fakat programı kapatıp açtığımda yada ilgili tableye bir query çektiğimde gridde oluşan değerlerin aksine sadece insert edilmiş alanı gösteriyor.
edit edilen alanlar boş geliyor.

Yine de ilginize çok teşekkür ederim. Yusuf Bey

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 11:31

Formun genel yapısı hep ardımlaşmak üzere kurulmuş. Bilgi ve sevgi paylaşıldıkça büyür.


Birde şuna bakarsanız sevinirim.
Datanıza Locate komutu ile ulaştıktan sonra edit edin. Belki gridinizle ilgili yapılandırmada problem vardır.

Gride değerleri Query üzerinde mi atıyorsunuz, yoksa direkt table üzerinden mi? eğer Query üzerinde ise. Siz editinizi Table üzerinde yapıyorsunuz diye düşünüyorum.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 11:36

grid değerleri direk tableden alıyor.

Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 67
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Mesaj gönderen Yusuf AYDIN » 03 May 2004 11:58

Bence siz table üzerinde istediğiniz kayıta edit yapamıyorsunuz.
Yani edit işleminden önce Locate olursanız, daha iyi olur gibi geliyor.

Bir de post işlemine gelindiğinde datalarınızın doğruluğundan emin olmalısınız.
Breake point koyarak çalıştırın, ve datanızın doğruluğundan emin olun.

Kolay gelsin.

bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 09:32
Konum: istanbul

Mesaj gönderen bgoktas » 03 May 2004 12:13

Yusuf Bey Gridde doğru değerleri görüyorum. programı kapattığımda veya query çektiğimde bilgiler uçuyor. İnsertle post yaptıktan sonra table üzerinde başka bir kayıda gitmiyorum. Aynı kayıtta kalıyorum

Cevapla