firebird ve ağ desteği..

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
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

firebird ve ağ desteği..

Mesaj gönderen serkan »

selamın aleyküm..
arkadaşlar firebird deki meşhur ağ kullanıcıların aynı anda değişiklikleri görememe problemi (ibevents ve triger ile problem halloluyormuş ama ben daha yapamadım)..neyse bu durum tüm sql veritabanlarında varmı yoksa firebird'de özgü birşeymi..neden bizi ibeventsla falanla filanla uğraştırıyor.ben terminal kullanıcıda;

xquery.applyupdates;
ibtransaction.commitretaining;

yaptığımda artık herkesin görmesi lazım bence..
birde işin mantığı ibeventsla yeni kayıt olduğunu anlayıp tabloyu refresh ediyor...ama terminaldeki programda select den önce tablo kapatılıp slectden sonra açılıyor zaten o zaman refresh'in kralını yapıyoruz..illa serverdaki firebird kendini refreshmi etmeli...benimki bir sorundan ziyade fikir almaktı..
teşekkürler..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ib eventsla uğraşılmasının sebebi değişikiğin anında güncellenmesi.
siz terminal makineden commit ettiğiniz zaman kayıtlar servere yazılır. siz commiti yaptığınız sırada aynı tabloya bakan ve sizin commitinizden önce tabloyu açmış olan kullanıcıların sizin yaptığınız değişiklikleri görebilmeleri için tabloyu refresh (açıp kapama) işlemi yapmları lazım.
bundan daha doğal bi şey yok.
ib eventslar burda devreye giriyor. server terminallere tabloda bir değişiklik olduğunu bildiriyor. isteyen yeni değerleri alsın diyor. refresh yaparak yeni değerler alınıyor.
bilmem açıklayıcı oldumu yada sorunuza tam yanıt alabildinizmi?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Eventlarla ilgili sorunun nedir anlayamadım.
bir event, işlem kesinleşince yollanır. yani commit edilince eventlar
kuyruktan sırayla networke duyurulur.
bunun alıp almamak, değerlendirip değerlendirmemek kullanıcıya kalmıştır.
çok kullanıcılı bir sistemde aynı anda bir sürü update, insert ve delete yapılırken, trigger ve procedure çalışırken ve bunlardan sürekli event gelebilecekken, client compenentlerinin datasetlerini bu eventlarla otomatik kendini tazelemesi abesle iştigaldir. bunu sen yaptıracaksın.
senin görevin bu, sen programcısın component drag dropper değil.
üstelik herkes aynı kullanmaz db yi. bazıları snapshot kullanır, ve tutarlı raporlar almaya çalışır. ya da replicasyon yapar ya da backup alır.
eventları akıllıca dinleyip, adına, parametresine göre yeni datayı fetch etmek, data sete eklemek ya da dataseti close open ile tazelemek senin projenin terbiyesine ve ihtiyaçlarına kalmıştır.
yoksa hiç kimse yüzlerce clienta sürekli push edilen tablolar istemez.
kullanıcı da ekranında sürekli lök lök istemdışı değişip duran gridler, comboboxlar, listboxlar görmek istemez. bunun yönetimini sen yapacaksın
event gelirse bir ledi yakarak kullanıcıyı refreshe teşvik edebilirsin mesela.
bir süre güzel çözüm var biraz düşününce..
event sisteminin yaratıcısı bir VT yi kullanıyorsun.
Cevapla