datagrid, firebird, trigger

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
aayylliinn
Üye
Mesajlar: 20
Kayıt: 08 Tem 2008 04:25

datagrid, firebird, trigger

Mesaj gönderen aayylliinn »

arkadaşlar firebird kullanılarak yapılan bir programda veritabanına kayıt yapıldığında, bunu datagrid' de göremiyorum ancak programı kapatıp yeniden açtığımda yapılan kayıtlar datagridde görülebiliyor. benim istediğim yeni bi kayıt girdiğimde yada sildiğimde aynı anda programı kapatıp açmaya gerek kalmadan bu değişiklikleri datagrid'de görmek. nasıl yapılabileceğini forumda araştırdım triggerden bahsedilmiş ama tam anlayamadım elimdeki kaynaklardada triggera pek değinilmemiş. bu sorunu nasıl çözebilirim yardımcı olacak arkadaşlar şimdiden teşekkürler...
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: datagrid, firebird, trigger

Mesaj gönderen mkysoft »

en basiti, tabloyu açıp kapatmak. triggerdan kasıt veri tabanı oalaylarını yakalayan ibevent nesnesini kullanmak. bunun kullanıma bakın ve forumda arayın.
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: datagrid, firebird, trigger

Mesaj gönderen emin_as »

Transactionlarla ilgili bir problem. Eger iki ayrı programdan bahsediliyorsa, yani başka bir programın girdigi kayıtları görmek için programı açıp, kapatıyorsan, program yerine table ı açıp, kapatabilirsin. Yani kaydı yapan program veritabanı bilgilerini yollayıp, tablei kapattıgı zaman transaction sonlanır.

Eger sözkonusu olay aynı program içinde gerçekleşiyorsa, veritabanına baglı tek bir transaction ı bütün tablelar için kullan, ama yine de tam çözüm olmayabilir. Genel ve kesin çözüm, table ları belirli süreler içinde açıp, kapatman olabilir. Bu işlemi bir timer a baglayabilirsin.

Bilgiler girildikten sonra table kapatılmalı ve mümkünse database baglantısı da sonlandırılmalıdır. Bu şekilde transaction ların sonlandırılması garanti altına alınmış olur. Diger programlar da açık olan tableları 5 dakika da bir kapatıp, tekrar açılabilirler.

Trigger gibi yöntemlerle eventler oluşturabilirsin. Program içinde bu eventleri yakalayıp, tableda degişiklik oldugunu anlar ve tablei bu şekilde sadece degişiklik oldugunda açıp kapatabilirsin. Tableda olabilen degişiklikler şunlardır; insert, delete, update. Tüm bu olayları her table için ayrı ayrı yakalayıp, event oluşturman gerekir. Bu biraz daha zahmetli bir yöntemdir.

Table derken ibdataset, ibquery gibi dataset bileşenlerinden bahsediyorum.
aayylliinn
Üye
Mesajlar: 20
Kayıt: 08 Tem 2008 04:25

Re: datagrid, firebird, trigger

Mesaj gönderen aayylliinn »

teşekkürler arkadaşlar..
Cevapla