1.Yöntem
ibdataset1 : select * from hareket
dbedit
ibdateset1.open
2.Yöntem
ibdateset1 : select * from hareket
dbgrid
ibdataset1.open
1. yöntemle 2.Yöntem arasındaki fark olarak
a) 1.yöntemde tüm kayıtları ekrana getirdiğine göre;
2.yöntemde ile ilk kayıt ekranda görülüyor
fakat dataset1.open dediğimizde tüm kayıtlarımı okuyor?
b) eğer her iki yöntemdede tüm kayıtları database den okuyorsa
1.yöntem için gereksiz, database i zorlamıs oluruz.bunun yerine ne yapmak lazım.
c) bu merakım server client programda 1. yöntemi kullanmam gerektiğinde serverdakı database i her client tüm kayıtları gereksiz okumaya calısarak sistemi kasacakmıdır??
server client sistemlerinin hızlı olması için yöntemler?
yanlış bilgi vermek istemiyorum ama .dbbileşeninin alacağı kadar kayıt çekiliyor diye biliyorum.ama bildiğim birşey var.orda örneğin query i open yaptığımız zaman neye bağlı olursa olsun tüm kayıtları çekmediği.query den tüm kayıtları çekmek için fetchall yapmak gerekiyor.ancak bu durumda tüm kayıtları serverdan çeker.
argem :)
evet şimdi aklıma takılan bu sorulardan su sonuclar cıkarttım.
a) ilk ibdataset kullanmya basladıgımda nasıl olur demiştim ibdataset.recorcount doğru çalısmıyor..sonra forumda IBDataSet1.FetchAll kullanın denılmıstı.ama şimdi anlıyorum neden böyle olduğunu.
b) query1.open query1.recorcount dedıgımızde databesın gercek sayısını veriyor.yani tüm veriyo databaseden okuyoarak ağ trafiğini yoruyor.
c) ibdataset1.open ibdataset.recorcount dediğimizde ve bağlandısı dbedit için ise sonuc=1 grid ise ekranda görülen satır kadardır sonuc
d) yani ibdataset tüm veriyi database den okuyarak yormuyor sadece kullandıgın edit yada grid bileseni ne göre ekranda göründüğü kadarını cekıyor
e) bu durumda iki yada cok katmanlı database için kullanılan ibdataset bileşenin özelliğide server client için özenle tasarlanmış diyorum.
f) bunun haricinde network için kullanılmaya calısan tek katmanlı database ler (acces,paradox,dbase vs.) kullandığımız bilesenler (table,query).open yaptıgımızda her client serverdan tüm kayıtları okuyarak ağ trafiğini ve sistemi kasacaktır.
g) sonuc olarak network ortamları için tek katmanlı database kullanmak en büyük hata demekmiş
a) ilk ibdataset kullanmya basladıgımda nasıl olur demiştim ibdataset.recorcount doğru çalısmıyor..sonra forumda IBDataSet1.FetchAll kullanın denılmıstı.ama şimdi anlıyorum neden böyle olduğunu.
b) query1.open query1.recorcount dedıgımızde databesın gercek sayısını veriyor.yani tüm veriyo databaseden okuyoarak ağ trafiğini yoruyor.
c) ibdataset1.open ibdataset.recorcount dediğimizde ve bağlandısı dbedit için ise sonuc=1 grid ise ekranda görülen satır kadardır sonuc
d) yani ibdataset tüm veriyi database den okuyarak yormuyor sadece kullandıgın edit yada grid bileseni ne göre ekranda göründüğü kadarını cekıyor
e) bu durumda iki yada cok katmanlı database için kullanılan ibdataset bileşenin özelliğide server client için özenle tasarlanmış diyorum.
f) bunun haricinde network için kullanılmaya calısan tek katmanlı database ler (acces,paradox,dbase vs.) kullandığımız bilesenler (table,query).open yaptıgımızda her client serverdan tüm kayıtları okuyarak ağ trafiğini ve sistemi kasacaktır.
g) sonuc olarak network ortamları için tek katmanlı database kullanmak en büyük hata demekmiş