IbEvents mesaj yakalama problemi

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
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

IbEvents mesaj yakalama problemi

Mesaj gönderen TRSoft »

Arkadaşlar Merhaba
Çok uğraşdım ama sonuç alamadım. Interbase veritabanında hazırladığım bir tablonun After Insertine bir trigger yazdım ve post_event ile bir mesaj gönderdim ama Delphide IBevents componentin OnEventAlert yordamında mesajı yakalayamıyorum. Öncelikle trigger tetiklenmiyor diye düşündüm ama diğer tüm triggerlar tetikleniyor. Ayrıca delphinin kendi demolarında bile IbEvents mesajı yakalamıyor. Yardımcı olursanız sevinir..

Delphi7,Interbase 6.5 ve IBx componentlerini kullanıyorum.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

bunu bulmak bana 1 haftaya mal olmuştu. POST_EVENT dan sonra commit; etmezsen event generate edilmiyor.

Delphi içindede Event alerter a register ettiğin stirngler aynı olmak sorunda case sensetive vardır yani

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Hocam çok teşekkür ederim..

Problem sizinde dediğiniz gibi commit den kaynaklanıyormuş problem kalmadı. Sağolun..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
bendeki yukarıda olduğu gibi EVENT ı delphiden yakalayamıyorum, bunun nedenin COMMIT olduğunu söylediniz bende TRIGGER i şu şekilde değiştirdim,

Kod: Tümünü seç

CREATE TRIGGER TRG_DENEME FOR TBTEST ACTIVE
AFTER INSERT POSITION 0
AS
BEGIN
  POST_EVENT 'DENEME_OLAYI';
  COMMIT;
END
fakat bu trigger i derleyemeyiroum COMMIT satırında sorun çıkartıyor.
benmi yanlış anladım acaba COMMIT komutunu nasıl kullanmalıyım.?
teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

trigger a yazdıgınızda tablo islemini (ekleme,edit yada silme) commit ettiginizde triggerdaki islemin de commit olması lazım
mesela ben bir kayıtı sildigimde silme triggerında ilgili kaıtın detaillerini de siliyorum islemi roolback ettigimde hicbirsey silinmiyor, commit edince siliniyor
bunun gibi calısması lazım.
mesajı yakalayamama problemi mesaj textlerinin uyusmamasından kaynaklanabilir. post event a yazdıgınız stringi ibevent a eklemelisiniz.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba,
evet sorun dediğiniz yöntemle çözüldü,
fakat bişi sormak istiyorum AOTUCOMMIT yönetimde niçin TRIGGER lar tetiklenmez VT ye kayıt yapıldığı halde.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Ben büyük küçük harf ayrımını da normal yaptırıyorum ama yine de delphi tarafında mesaj yakalanamıyor. IB 6.0 da yapıyordum belki ondandır dedim kaldırıp FB kurdum aynı, acaba trigger damı sorun var dedim ama FB tarafında trigger kusursuz çalışıyor. Örneğin kayıt yapılırken xx tablosuna da kaydet gibi, fakat delphiden post mesajı yakalamaya çalışınca olmuyor.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bu konuda bende çok yeniyim. Ben Form açılışına IBEvents1.RegisterEvents; kodunu ekleyerek mesajı yakalayabildim.

Kod: Tümünü seç

if not IBEvents1.Registered then 
     IBEvents1.RegisterEvents;
Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Acaba bu kodun işlevi hakkında bilgi verebilirmisiniz
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

pentiumkivanc yazdı:Acaba bu kodun işlevi hakkında bilgi verebilirmisiniz
ibEvent register olmamışsa Register et. Ben bu mantıkla yazdım.

AutoRegister True olduğu halde yukarıdaki kodu yazmadan yakalayamadım.


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sule
Üye
Mesajlar: 8
Kayıt: 03 Tem 2007 04:33
Konum: Erzurum

Mesaj gönderen sule »

Merhaba arkadaşlar
Bu IBEvent bileşeni ile post_event'den gelen mesajı delphi tarafında yakalama işi ile bir haftadır uğraşıyorum, yazılan mesajların hepsini okudum ve doğru uyguladım ama hala bu mesajı delphi tarafında yakalayamıyorum. Daha doğrusu eventalert procedure'ünü hiç okumuyor delphi, sanki bu procedure hiç yazılmamış gibi atlıyor.
(Delphideki form üzerine IBEvents'i yerleştirdim. Kayıt güncelleme (after update) triggerinde

post_event 'Kayıt güncellendi';

şeklinde triggeri oluşturdum. Mesajı aynen alıp IBEvents'in Events kısmına ekledim, afterconnect'de registerevents olayını yaptım. AutoRegister özelliğini dahi true yaparak denedim ama olmuyor, eventalert procedure'ünde commitretaining de yaptırmak istiyorum ama bu procedure'ü hiç okumadığı için bir anlamı olmuyor. Gözümden kaçan nedir bulamıyorum.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

IBx kullandığınıza göre güncellenmiş mi?

IBTransaction.DefaultAction := TACommitRetaining; olarak seçilmiş mi?

IBTransaction a çift tıklayınca açılan pencerede Read Commited işaretlenmiş mi :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
sule
Üye
Mesajlar: 8
Kayıt: 03 Tem 2007 04:33
Konum: Erzurum

Mesaj gönderen sule »

rsimsek hocam;
IBX güncellemelerini 1 ay kadar önce yüklemiştim. 24 Ekim’de.
ibtransaction.defaultaction:=TACommit idi, dediğiniz gibi TACommitRetaining olarak değiştirdim. Diğer parametre Read Commited zaten işaretli durumda idi.
Tekrar denedim sonuç hala aynı.
(Benim transaction ve database’im datamodül üzerinde ancak dataset forum üzerinde bulunuyor, bilemiyorum bu şekilde bir kullanım sorun yaratıyor olabilir mi diye. Gerçi şu ana kadar bir sorun yaşamadım bu konuda ama yine de firebird’de oldukça yeni olduğum için bilemiyorum. :?: )
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

DataSet in forum veya DataModul üzerinde olması farkettirmez. Başka bir şey olabilir. DataSet olarak ne kullanıyorsunuz? IBDataSet olsun :wink: Onun kullanımı ile ilgili bilgiler forumda var. İsterseniz basit bir deneme projesi oluşturup bu bilgilerle aynı veri tabanı ile deneme yapın :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla