Grid refresh
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 13
- Kayıt: 03 Tem 2004 10:02
- Konum: sakarya
Grid refresh
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 ...
Re: Grid refresh
veritabanı bağlantısını ne ile yapıyorsunuz?
en hızlı tazeleme yöntemi
Kod: Tümünü seç
Adotable.Requery();
Bir kelimenin anlamını öğretsen bile yeter..



-
- Üye
- Mesajlar: 13
- Kayıt: 03 Tem 2004 10:02
- Konum: sakarya
Re: Grid refresh
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ı ??
Re: Grid refresh
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....
-
- Üye
- Mesajlar: 13
- Kayıt: 03 Tem 2004 10:02
- Konum: sakarya
Re: Grid refresh
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..
Re: Grid refresh
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.....
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.....
-
- Üye
- Mesajlar: 13
- Kayıt: 03 Tem 2004 10:02
- Konum: sakarya
Re: Grid refresh
Trigger kullanımı konusunda pek bilgim yok öğrenmeye çalışıcam.. Arkadaşlar ilginize çok teşşekkurler ...
Re: Grid refresh
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....
Re: Grid refresh
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.



Re: Grid refresh
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.....
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.....
Re: Grid refresh
s.a.
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.
+1Battosai yazdı:...demek istediğim buydu.Sonuçta mesele trigger ile alakalı değil ,trigger çözümün bir parçası....
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
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Grid refresh
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 

Re: Grid refresh
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?
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?
Re: Grid refresh
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....Sizce hangisi sistemi daha çok yorar?
Re: Grid refresh
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 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...
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.