Grid refresh

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
mbozkurt79
Üye
Mesajlar: 13
Kayıt: 03 Tem 2004 10:02
Konum: sakarya

Grid refresh

Mesaj gönderen mbozkurt79 »

Selamlar... Delphi 6 ve oracle8 kullanıyorum. İstediğim şey databasede tabloda bir değişiklik olduğunda programda kullanılan grid üzerinde değişikliğin anında olması. Birbiriyle ilgili fakat ayrı noktalarda veri girişi oluyor. Bir kullanıcının kayıt üzerinde yaptığı değişikliği diğer kullanıcı o anda görmek zorunda.. Bu işlemi nasıl yapabilirim devexpresin componenti kurulu. Ayrı bir component mi kullanmaıyım ? Oracle ilgili böyle bir özellik var mı ? Bilgi paylaşımı ve yardımlarınıza ihtiyacım var .. Forumda arama yaptım fakat sanıyorum doğru kelimeleri bulamadığımdan bir sonuç alamadım .. İlginize şimdiden teşekkurler ...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Grid refresh

Mesaj gönderen conari »

veritabanı bağlantısını ne ile yapıyorsunuz?

Kod: Tümünü seç

Adotable.Requery();
en hızlı tazeleme yöntemi
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
mbozkurt79
Üye
Mesajlar: 13
Kayıt: 03 Tem 2004 10:02
Konum: sakarya

Re: Grid refresh

Mesaj gönderen mbozkurt79 »

veri tabanı bağlantı için BDE ve normal Query kullanıyorum. Ama benim sormak istediğim iki ayrı bilgisayardaki kullanıcıların aynı bilgilerde değişiklik yaptığını düşün biri değişiklik yaptığında diğerinin ekranındaki gridde değişecek. yani bu özelliği desteklyen bir komponent vs. bir yapı var mı ??
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Grid refresh

Mesaj gönderen Battosai »

Bu iş tamamen gereksiz ve zor bir iş....Böyle olması lazım demişsin nedenini belirtmemişin.Ayrıca diğer kullanıcının işinide sıkıntıya sokacak bir şey...Adam bi iş yaparken tak Datasource refresh olursa ne olacak bunu düşündün mü ? Datasource'a bağlı bileşenler direk etkilenicek...Dolayısıyla kullanıcı bir işlem yapmadan önce kendisi tablosunu refresh yaparsa herkes için daha iyi ve kolay bir yöntem olur....
mbozkurt79
Üye
Mesajlar: 13
Kayıt: 03 Tem 2004 10:02
Konum: sakarya

Re: Grid refresh

Mesaj gönderen mbozkurt79 »

Arkadaşlar benim için anlamlı olduğunu düşündüğüm bir nedeni var. Bir kullanıcı yarı mamul üretimlerini girerken diğer kullanıcı da o yarı mamulden üretim yapacağından an ve an ilgili yarı mamul stoğunu izlemesi gerek. Bu işlemi ya her 5 sn de bir Queryleri close-open ederek yapacağım yada bahsettiğim şekilde bir teknik varsa bundan yararlanmak istiyorum..
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Grid refresh

Mesaj gönderen NewMember »

Bu senin söylediğin triggerler ile olur.Firebird ile ilgili olarak bu işin nasıl yapılacağını anlatan bir makale var forumda.Trigger destekleyen bir db için kendine göre uyarlayabilirsin.
Yada tamamen farklı bir mantıık ile şöle yaparsın.Messenger sistemi gibi herhangi bir post işlemi yapıldığında açık olan tüm pclere bir uyarı gönderterek refresh yapmalarını sağlaabilirsin.

Ama Battosai'nin dediği gibi bazı sıkıntılar olabilir.Bunun içinde gelen uyarıyı datasetin browse modda olup olmamasını kontrol ederek dikkate al dikkate alna gibi kullanabilirsin.
Kolay gelsin.....
mbozkurt79
Üye
Mesajlar: 13
Kayıt: 03 Tem 2004 10:02
Konum: sakarya

Re: Grid refresh

Mesaj gönderen mbozkurt79 »

Trigger kullanımı konusunda pek bilgim yok öğrenmeye çalışıcam.. Arkadaşlar ilginize çok teşşekkurler ...
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Grid refresh

Mesaj gönderen Battosai »

Bilgin olsun mevzu Trigger la alakalı değil öğrenmiş olursun ama işe yaramaz...Bu iş için üç katmanlı mimari veya server-client yapıda program geliştirmelisin....En kolayı 3 katmanlı mimari olur bu durumda....Çok katmanlı olarakta bilinir....
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Grid refresh

Mesaj gönderen NewMember »

Battosai yazdı:Bilgin olsun mevzu Trigger la alakalı değil öğrenmiş olursun ama işe yaramaz...Bu iş için üç katmanlı mimari veya server-client yapıda program geliştirmelisin....En kolayı 3 katmanlı mimari olur bu durumda....Çok katmanlı olarakta bilinir....

Merhaba;
Konunun neden triggerle alakalı olmadığını anlayamadım.Ben öyle yapıyorum ve de şu ana kadar bu konuda bir sorun yaşamadım.Bu konu ile ilgili forumda bir makale de var.
viewtopic.php?f=19&t=17470

Bu yöntemden daha iyi bir yöntem olduğunu söyleyebilirsin ve de tavsiye edebilirsin ama alakası yok demene şaşırdım.Acaba benmi yanlış anladım arkadaşın sorusunu ve isteğini. :( :( :(
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Grid refresh

Mesaj gönderen Battosai »

Makaleye şöyle bir göz attım firebird hiç kullanmadım dolayısıyla böyle bir post_event mevzusundan pek haberim yok demek ki bu post_event nesnesi devamlı database deki değişiklikleri kontrol ediyor...Bildiğiniz gibi Trgigger databasele alakalı ve çalıştığı makinayı ilgilendiren bir olay bu yüzden arkadaşa böleyle olmaz dedim....sonuçta benim manasız bulduğum client lara müdahale olayı belki bazı uygulamalarda gerekiyordur ama oldukça fazla veri ve client'ın olduğu bir ortamda ne kadar sağlık veya performanslı olur tartışılır....demek istediğim buydu.Sonuçta mesele trigger ile alakalı değil ,trigger çözümün bir parçası. Sonuçta ne yapılırsa yapılsın durduk yere open-close yapılacak...
Birde bu olayları yakalayan bileşen devamlı database ile alış-veriş halinde mi her değişikliği yakalıyor yoksa firebird bağlanılan porttan istemcisine post_event ı kendi mi gönderiyor....ikinci seçenek ile çalışıyorsa güzel bir özellikmiş diyorum.....
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Grid refresh

Mesaj gönderen aslangeri »

s.a.
Battosai yazdı:...demek istediğim buydu.Sonuçta mesele trigger ile alakalı değil ,trigger çözümün bir parçası....
+1
Post_event "XXXXXXX" veriler commit edildiği zaman "xxxxxx" ile verilen isimde bir olay oluşturuyor ve bu olayı ilgili porttan (conf dosyasında Remoteauxport olması lazım) tüm clientlara yolluyor. eğer client xxxxxx olayını dinliyorsa programcı olaya göre programa işlem yaptırıyor.
güzel bir olay ve clienttaki verilerin güncellenmesi gereken durumlar oluyor. Örnek verecek olursak doktor odasında bekliyor. hasta kabul doktora bir hasta yönlendirdiği zaman doktor bu hastayı kendi ekranında görmek isteyecek. belirli aralıklarla vt kontrol ettirmektense bu yöntem ağ trafiğini daha az yoracaktır.
Tabi iyi bir iş akış analizi ile beraber. Doktor hasta muayene ederken veya hasta trafiği yoğunken programın ona göre davranması sağlanmalı, yeni hasta geldi diye programın bağırması hoş olmaz....
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Grid refresh

Mesaj gönderen Battosai »

Dediğim gibi lazım olan uygulamalar olabilir ama özellikle client sayısı çok olan sistemlerde database de her bir işlem için client sayısı kadar refresh yapılacağı için oldukça fazla bir yük bindirecektir...Özellikle web üzerinden(uzak makina) yapılan çalışmalarda kitlenmeler bolca olacaktır. Firebird gerçekten güzel iş çıkarmış acaba başka hangi VT lerde var bu özellik....Ayrıca bu sistemin dataset refresh dışındada güzel uygulama alanları var.... şu Firebird'e bende mi geçsem artık :)
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Grid refresh

Mesaj gönderen NewMember »

Burada önemli olan trigger ve event olayı.Kullanım şekli size kalmış.
Database refresh yapma zamanını seçmekte.
Örnek:
Kayıt Eklendiği Yada Değiştirildiği Zaman;
MSN Popup ile Yeni Bir Hasta Kaydedildi.Gibi Uyarı yapılabilir.
Yada Normal Zamanlarda Standart Renkte tutulan Refresh butonu Kırmızıya boyanarak kullanıcıya tabloda değişiklik olduğu isterse refresh yapabileceği gibi.

V.s............

Osa böyle bir sistem kurulmamışsa kullanıcı ikide bir gereksiz olarak acaba yeni hasta kaydı varmı yokmu diye servere sormak zorunda kalacak.

Sizce hangisi sistemi daha çok yorar?
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Grid refresh

Mesaj gönderen Battosai »

Sizce hangisi sistemi daha çok yorar?
Tabiki sizin yöntemizin...Benim dediğimde lazım olduğuda firebird'e başvurulur sizinkinde 1 kullanıcının işlem yapması diğer 100 kullanıcının işlem yapması demek oluyor ki buda sisteme 100 kat yük bindirmek manasına gelir...söyleyeceklerim bu kadardır daha fazla bişey eklemeyeceğim tercih tamamen programcıya aittir....
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Grid refresh

Mesaj gönderen NewMember »

Benim dediğimde lazım olduğuda firebird'e başvurulur sizinkinde 1 kullanıcının işlem yapması diğer 100 kullanıcının işlem yapması demek oluyor ki buda sisteme 100 kat yük bindirmek manasına gelir...
Amacım polemik değil.Yanlış anlaşılmasın.Sadece fikir alışverişi.Ama bu söylediğiniz makale için geçerli.Bu makale bu konuda o zamanlar bir talep vardı ve tamamen konunun mantığını anlatmak için yazıldı.Bunun optimize bir şey olduğunu savunmamız yada reddetmemiz gerekmez.Client sayısına göre kullanılabilride kullanılamaz da.Tercih programcıya ve sisteminin çekip çekmemesine bağlı belki.

Benim sorduğum soru yukarıdaki mesajda belirtttiğim seçenekler arasındaydı.Yani triggerler tetiklendiğinde clientlere mesaj gönderse ama clientler her mesaja atlayıp hadi refresh yapalım demese ama sadece değişiklik yapıldığını bilse ve gerektiği zaman refresh yapılsa.Yani her 1 dk'da acaba yeni birşey varmı diye bakarsa 10 dk da 10 refresh.Ama 10 dk da sadece bir değişiklik yapıldıysa ve bu mesaj client tarafında alınsa ve alındıktan sonra refresh yapılsa 1 kez refresh yapılmış olacak.Bu sizce optimist bir yöntem değilmi?

söylemek istediğim buydu.
Cevapla