Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
unigui serverdan data çağırma
#1
Merhabalar,
Bir tablomda 100 bin kayit oldugunu var sayalim . Select * from tablo seklinde sorgu aldığımda ve open komutunu verdiğimde. Unigui'de 100 bin kaydın tamamı client'a yüklenir mi?
Eğer yüklenmiyorsa  "while do " ile dongüye alıp tüm kayıtları dolaştığımda her kaydı sırası gelincemi serverdan çağırıp yüklüyor.

tablo.first;
while not tablo.eof do begin
 tablo.next;
end;

 seklinde yapınca.
Sistem nasıl işliyor?
Cevapla
#2
Merhabalar,

Evet, Unigui'de kullanılan componentlerin Fetch özelliği olmadığından dolayı veritabanından çektiğiniz tüm kayıtlar client'e yüklenecektir.
Mesela Grid kullandığınızı varsayalım, Grid içine tüm kayıtlar yüklenir. Grid'in sayfalama özelliğini kullandıysanız da her sayfaya geçtiğinizde zaten yüklenmiş olan kayıtları gösterir.
Yani grid'in her sayfasına geçtiğinizde gidip de server'dan yeniden kayıt okuma yapmaz.

Kolay gelsin.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#3
Grid icerisinde fetch All ozelligi mevcut olduğunu gördüm. Anladığım kadarıyla Dataset dışında herhangi bir bileşen kullanmadan sadece dataset i açtığımızda da verilerin tamamı yükleniyor.
Teşekkürler.
Cevapla
#4
Doğrudur, benim bahsettiğim fetch özelliği o değil. Mesela Intraweb'de TMS component paketinin FetchLoad özelliği var. Sayfayı aşağı kaydırdıkça yeni kayıtların server'dan yüklenmesi olayı. Unigui'nin grid'indeki fetchall o şekilde değil. Aslında tüm kayıtlar dataset içinde mevcut, yani client'a indirilmiş oluyor. Sadece grid üzerindeki gösterimi ile ilgili olarak fetch ayarı yapabiliyorsunuz. Ama yine de tüm kayıtlar gelse bile, unigui'nin grid sayfalama performansı gayet iyi. Sorunsuz kullanabilirsiniz.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#5
Öncelikle teşekkür ederim ilginize,
On Binlerce kaydı çekmeniz gerektiği durumlarda nasil bir yöntem izliyorsunuz? query de limit leme yapip sayfalama özelliğini veriyi çekerken mi yapıyorsunuz mesela.
Çünkü bu durum 100 lerce kullaniciya çıkınca sorun oluşturmaya başlayacaktır diye düşünüyorum.
Cevapla
#6
Merhaba,

Öncelikle ben unigui ile normal web uygulaması değil de, mobil web uygulamaları geliştiriyorum. Onbinlerce kaydı çekmek gereken bir durum pek yaşamadım, normal bir web uygulamasında da onbinlerce kaydı birden çekecek bir kullanım pek hayal edemedim. Normal şartlarda, kayıtları sorguladığım ekrana Tarih-saat seçme diyalogları koyarak iki tarih arasındaki kayıtları filtreleyerek getiriyorum. Başka türlü filtreler de konulabilir. İsim listeleri için, sunucuyu fazla yormasın diye veritabanı tablom'dan sadece ID ve ISIM alanlarını çekiyorum, böylece hızlı geliyor. O isim seçildiğinde, seçili ID numarasına göre yeniden sorgulama yapıyorum. Bu sefer yine sadece gerekli alanları çekip performans artışı sağlıyorum.

Yani sadece gerektiği zaman gerektiği yerde gerektiği kadar sorgulama yaparak işimi çok rahat görebiliyorum. Siz de onbinlerce kaydı birden çekip sorgulama yapacağınıza, önce filtrelere göre sorgulayıp, sorgudan sonra dönen kayıtları dataset'e çekerseniz daha iyi olur kanaatindeyim.

Kolay gelsin.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#7
Teşekkür ederim Ramazan bey,
Normalde filtrelemeden tüm kayıtları çağırmıyorum. Ama böyle bir senaryo gerçekleşirse unigui de durum ne olur ve nasıl bir yol izlemek gerekiyor onu merak etmiştim.
Cevapla
#8
(01-03-2017, Saat: 12:36)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlTeşekkür ederim Ramazan bey,
Normalde filtrelemeden tüm kayıtları çağırmıyorum. Ama böyle bir senaryo gerçekleşirse unigui de durum ne olur ve nasıl bir yol izlemek gerekiyor onu merak etmiştim.

Merhaba;

Ramazan bey'in son yazdığı gibi, onbinlerce kayıtı ne için kullanıyorsunuz? 
Sizin bahsettiğiniz kullanıcı sayısı artarsa bu sorun olur düşünceniz kayıt sayısı / kullanıcı sayısı şeklinde veriler çekileceğinde aslında kayıtlar hep az kalacaktır.

Aslında cevabıda kendiniz yazmışsınız, onbinlerce veri içeren test kayıtları üreterek sonucu burada paylaşabilirsiniz.

İyi çalışmalar.
Cevapla
#9
Merhabalar,
Misal mevcut programlardan birisini unigui geçirdik diyelim(Tüm müşterilerin verileri tek bir database de durması lazım.müşteri kodu ile herbiri birbirinden ayrıştırılır.).
Müşterim masaüstü programa verileri girmiş olacak. ticari bir programda bu 10 binlerce kayıt demek olacak. Benim her müşteri için tek tek verileri aktarmam kendime ek iş çıkarmak olacaktır. Onun yerine bir bölüm ekleyip. kullanıcı login olduktan sonra kendisi eski verileri servera alip (program içerisinde upload modulü hazirlayip) oradan kayitlari sisteme aktarmasi daha mantikli olur düşüncesindeyim.

Burada 2 sorun ortaya çıkabilir diye düşünüyorum
1- unigui upload işlemi yaparken büyük verilerde nasıl davranır ve kaynak tüketimi nasıldır?
2- Masaüstü programının verileri upload olduktan sonra unigui içinden ikinci bir baglantı açılıp bu database e bağlanılması ve verilerin tek tek aktarılması. Söylediğim 10 binlerce kayıt olayı ortaya burada çıkıyor.

Aktarım işleminde benim ilk aklıma gelen yöntem ilgili tabloya baglanıp , sonrada döngüye alarak tüm verileri yeni tabloya insert etmek oldu.
Bu işlemde tabiki fazlaca kaynak kullanımı demektir.
Cevapla
#10
(02-03-2017, Saat: 11:52)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar,
Misal mevcut programlardan birisini unigui geçirdik diyelim(Tüm müşterilerin verileri tek bir database de durması lazım.müşteri kodu ile herbiri birbirinden ayrıştırılır.).
Müşterim masaüstü programa verileri girmiş olacak. ticari bir programda bu 10 binlerce kayıt demek olacak. Benim her müşteri için tek tek verileri aktarmam kendime ek iş çıkarmak olacaktır. Onun yerine bir bölüm ekleyip. kullanıcı login olduktan sonra kendisi eski verileri servera alip (program içerisinde upload modulü hazirlayip) oradan kayitlari sisteme aktarmasi daha mantikli olur düşüncesindeyim.

Burada tam olarak ne demek istediğini anlayamadım. Unigui kullandığın veritabanının ayrı olmasını mı istiyorsun? Ben kendi masaüstü yazılımlarım ile entegre çalıştırdığım unigui ve intraweb yazılımlarımda şimdiye kadar pek bir sorun yaşamadım. Yani doğru anladıysam eğer, ikinci bir veritabanına ihtiyacın yok diye düşünüyorum.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question Unigui başka bir formda bağlı datasource link sorunu masteryoda 5 146 8 saat önce
Son Yorum: masteryoda
  UniGui ile yapılan bir projeyi nasıl yayınlarız? adelphiforumz 46 1.597 08-04-2018, Saat: 19:50
Son Yorum: masteryoda
  DevExtreme + UniGui FunnyBlue 2 210 14-03-2018, Saat: 22:00
Son Yorum: FunnyBlue
  UniGui Mobil Grid'de Sütun Formatı DelphiCanR 5 800 23-01-2018, Saat: 15:40
Son Yorum: rmzgenius
  UniGUI Kurulum & İlk Proje (Videolu Anlatım) yhackup 10 1.490 22-01-2018, Saat: 15:43
Son Yorum: hyperxman



Konuyu Okuyanlar: 1 Ziyaretçi