ağda ve internet üzerinden kayıtların anında görünmesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

ağda ve internet üzerinden kayıtların anında görünmesi

Mesaj gönderen huseyinert »

merhaba arkadaşlar
yaptığım program ağda çalışıyor ve veri tabanına ağdan kayıtta yapılıyor, internet üzerindende yapılan kayıtlardan rapor alınabiliyor ama şöle bi problem var kayıt yapıldığında kayıt yapıldığın prog. yeniden kapatılıp açılmayınca yeni yapılan kayıtları göstermiyor, problem nereden kaynaklanıyor acaba her yapılan kaydın anında prog. açıkken görünmesini istiyorum...ibquery lerin afterpost,afterdelet,afterrefresh olaylarına

Kod: Tümünü seç

ibquery.ApplyUpdates;
transaction.CommitRetaining;
komutunu yazıyorum
teşekkürler...
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

dataset1.refresh diyerek yapılan değişiklikleri görebilirsin.

dataset in refresh sql ini "select * from tablo" olarak ayarla ve değişiklikleri görmek istediğinde dataset1.refresh yap.

Eğer ağdaki diğer makinelerde haberdar olsun diyorsan,firebirddeki tablonun tüm triggerlarına bir event yerlerştir ve uygulamandan bu eventı takip ederek eğer tablo edit mod da değilse refresh edilmesini sağla.Ancak ağda çalışan programında çok büyük bir veri yükü varsa bunu yapmak programı bayağı kasacaktır.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

:ara IbEvent
Ağ için bu konuyu bir araştırın.. :wink:
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

arkadaşlar cevaplarınız için tşk.ederim, ben dataset kullnamıyorum ibquery ve inupdatesql kullanıyorum
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

arkadaşlar bir cevap bekliyorum nasıl yapabilirim benim bildiğim kadarıyla query nin afterpost a transaction.CommitRetaining yazmak yeterli olması gerekiyor ama olmuyor...
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

huseyinert yazdı:arkadaşlar cevaplarınız için tşk.ederim, ben dataset kullnamıyorum ibquery ve inupdatesql kullanıyorum
farketmez ibquery ve ibtable kullanman üçünde de refresh metodu var.Ancak ibdataset kullanman öneriliyor.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

CommitRetaining yaptığında Transaction da yaptığın işlemleri veritabanı üzerinde kalıcı hale getirirsin. Fakat diğer kullanıcının bu tablodaki bilgileri görebilmesi için DataSet i Rehresh yapmak yetmiyor :? Kapatıp açmak hatta IBDatabase i de kapatıp açmak gerekiyor :? Burada IBDatabase yerine;

Kod: Tümünü seç

  if IBDataSet1.Active then
    IBDataSet1.Close;

  IBTransaction1.Active := False;
  IBTransaction1.Active := True;

  IBDataSet1.Open;
şeklinde Transaction u kapatıp açmak daha uygun olur.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Valla Ben Şu CommitRetaining e bir türlü ısınamadım direk Commit kullanıyorum. Oda Datasetleri kapatıyor ama. Ben zaten her form Açılışında data setleri manuel açtırıp kontrol ettiğim için benim izlediğim yolda bir problem yaşamıyorum.
I love my car.
Blog Yaptık
Cevapla