stok listesi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
stok listesi
Merhaba Arkadaşlar.
Formda aradım ama bulamadım. Delphi7 ile SQL server 2000 kullanıyorum. bağlantı olarak 1 adoconnection var ve table olarak adodataset kullanıyorum.
konu şu. 10.000 kalem den oluşan stok listesini ağ üzerinden çağırdığımda 1 dak. yakın bekletiyor. fatura keserken her kalem için bu fix bekliyorsun. adodataset kullanıyorum. ben çıkamadım bu işin içinden bana yol gösterirseniz çok sevinirim. gerçekten yardımlarınıza ihtiyacım var.
Formda aradım ama bulamadım. Delphi7 ile SQL server 2000 kullanıyorum. bağlantı olarak 1 adoconnection var ve table olarak adodataset kullanıyorum.
konu şu. 10.000 kalem den oluşan stok listesini ağ üzerinden çağırdığımda 1 dak. yakın bekletiyor. fatura keserken her kalem için bu fix bekliyorsun. adodataset kullanıyorum. ben çıkamadım bu işin içinden bana yol gösterirseniz çok sevinirim. gerçekten yardımlarınıza ihtiyacım var.
--------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Dostum benim sana program olarak yardımdan ziyade yerel ağın ile ilgili tavsiyede bulunayım. Yerel ağın eğer 100Mbps çalışıyorsa eğer bunu 1000Mbps'e çıkar otomatikman hızın arttığını göreceksin. Önceden kurulan sistemlerden kullanılan hub ve switch'ler 100Mbps'ti dediğin gibi benzer bir müşterimde olay başıma geldi. Daha sonraki etapta hızı 1000Mbps'te çıkardık ve programın veriye ulaşma hızı daha da kısaldı. Ayrıca o sistemde de SQL Server 7.0 kullanıyordu.
Denemeni tavsiye ederim. Bizim başıma gelen olayı bu şekilde çözdük.
Denemeni tavsiye ederim. Bizim başıma gelen olayı bu şekilde çözdük.
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
ilgin için çok teşekkür ederim allah razı olsun.. ama sql de 10.000 kayıtın client a gelmesi bukadar veri yükünü içeriyormu benim çözmeye çalıştığım nokta bu. yani sadece sql de stok kodu ve adını select etmeme rağmen bukadar sürermi acaba. ben bunu merak ediyorum ve bu işi direkt tüm kayıtlar yerine başka methot mu kullanmak gerek nebileyim aklım bu noktada durdu valla.
--------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
hocam ne kadar olsa sonuçta select ile seçtiğiniz alanların bu kadar kayda bakılıp size sonuç döndürmesi tabiki biraz zaman alır ama ben yine de yerel ağ olayını yabana atmamanı tavsiye ederim ve client'lerin sonuçta ram'i, işlemcisi vs ne kadar güçlü olursa ve yine söylüyorum ağ hızın iyi olduğu sürece aradığın sonuca daha çabuk ulaşırsın. Onun haricinde şu an için başka bir fikir aklıma gelmiyor ama aklıma gelirse yine bilgi veririm.
İyi akşamlar...
İyi akşamlar...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Firebird ile kullanılan IBDataSet gibi bir bileşen kullanabilirsin.. Ado nun o tür bir desteği var mı bilemiyorum. Yani ekrana kayıtları tümü ile değil de sayfa sayfa getirebilen bir DataSet. Belki sadece stok isimlerini kullanıyorsanız sorguyu ona göre yazıp perfomans artışı sağlayabilirsiniz. Burada Şart_Koşul yerine girebileceğiniz belli harfleri sorguya ekleyip VT den çekilecek bilgiyi çok daha fazla daraltma şansınız olabilir. En kötü ihtimalle de tampon/cached tablo yada MEM_Table kullanıp bahsettiğiniz form yada program açılırken bir kere okutup bilgileri doldurabilirsiniz. Bunda da yeni bir stok kayıtı girildiğinde sorguyu yenilemek gerekecek 
Kod: Tümünü seç
SELECT STOK_ADI FROM STOK_TABLOSU WHERE Şart_Koşul

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Bu ışık için teşekkür ederim hocam anladığım kadarıyla hepsinin liste olarak gelmesi benim programlama hatam. bu söylediğiniz durumlar itibariyle yeniden yapılandırıcam allah razı olsun. Bazen bilmek değil cesarete ihtiyaç vardır onuda bilginle elde edersin, cesaret verdiğiniz için allah razı olsun hocam.
--------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Client server programlama
Sevgili kardeşimxcom yazdı:Bu ışık için teşekkür ederim hocam anladığım kadarıyla hepsinin liste olarak gelmesi benim programlama hatam. bu söylediğiniz durumlar itibariyle yeniden yapılandırıcam allah razı olsun. Bazen bilmek değil cesarete ihtiyaç vardır onuda bilginle elde edersin, cesaret verdiğiniz için allah razı olsun hocam.
Bende ilk zamanlar table kullanıyordum çünkü basitime geliyordu. Bir append yada post deyip bitirmek. Ama sana sadece basit bir örnek vereyim. Neden yavaş sen düşün. Şöyle diyelim 10000 kaydın var ve bu 10000 kişinin maaşlarının toplamını bulmak istiyorsun. Normalde table için ne yaparsınç tabloyu açarsın ve 10000 kaydı sırayla okutursun ve toplamını alırsın. Ama bu sırada 10000 kayıt serverdan senin sisteme getirilmek zorundadır. Adoquery ile ile yaptığını düşünelim. yapacağın tek şey select sum(maasi) from personel gibi bir sql yazsaydın bu kod sadece server tarafında işlenecek ve sana sadece toplam değeri dönecekti..
Burası senin aydınlanma noktan işte.
Birde makinedeki MDAC sürümünü güncelle. Komik gelebilir ama MDAC kurulu değil veya üstündeki gerekli ayarlar yapılmamışsa daha beter beklettiğine bende tanık oldum.. direkt ip den bağlansın.
Eyvallah, Allah cümlemizden razı olsun..
@ikut un toplam alma konusundaki tavsiyeleri ve tecrübeleri doğrultusunda prensip olarak şunu söyleyebiliriz: sunucunun yapabileceği işlemleri/işleri sunucuya yıkmaya korkmayın. Bu hem veritabanı tutarlılığını artıracak, hem ağ trafiğini azaltıp doğrudan perfomansı artıracak hem de arayüz tarafta daha az kod yazmak durumunda kalacaksınız. Çünkü işin çoğunu VT tarafta halletmiş olacaksınız
@ikut un toplam alma konusundaki tavsiyeleri ve tecrübeleri doğrultusunda prensip olarak şunu söyleyebiliriz: sunucunun yapabileceği işlemleri/işleri sunucuya yıkmaya korkmayın. Bu hem veritabanı tutarlılığını artıracak, hem ağ trafiğini azaltıp doğrudan perfomansı artıracak hem de arayüz tarafta daha az kod yazmak durumunda kalacaksınız. Çünkü işin çoğunu VT tarafta halletmiş olacaksınız

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ben böyle bir durumda veritabanında tampon bir table hazırlardım. client program servera derdi ki bana şu kayıtlar lazım. server program onları tampon tabloya kayderder ve client de veritabanından sadece tampon tablodaki kayıtları alırdı. 10000 kalemlik bir stok tablosundan sadece mesela 10 tanesi cliente gelicek, bu da 1 saniyede gelir 

Sorunu başka yerde aramalısınız. Değil 10.000 kayıt, 1 milyon kayıt dahi çekseniz (dediğiniz iki alanlı Select query'si için söylüyorum) yine de 1 dakika beklemez. Ama bilgisayarlarınız 386 DX 40 falansa bir şey diyemem. (Bir zamanlar fırtınaydı 386 DX 40'lar...) Tabi bu işin espirisi. Dediğim gibi sorunu başka yerde (bilhassa -hatta sadece- yazılımda) aramalısınız. Tabi yazılımla ilgili açıklamada bulunursanız daha yardımcı olunacaktır. Ben şahsen bu gibi problemlerin örneğin Lookup alanlardan kaynaklandığını biliyorum. Belki siz de Lookup alan kullanmışsınızdır. vs.
İyi çalışmalar.
İyi çalışmalar.
Allah razı olsun. dedikleriniz konusunda haklısın ama bu fatura üzerinde stok listesini getiren arkadaşlar 10.000 kayıtlı bir table dan nasıl getiriyorlar bu stok listesini.
inanın ben bu methotsal durumu aydınlatmam gerektiği inancındayım. yani hangi methotla 10.000 kayıt veya daha fazla kaydı fatura üzerine getiriyor ve kullanıcının seçmesiyle fatura üzerine ilgili kaydı alıyor bu konuda tecrübesi olan arkadaşlar yardımcı olursanız çok sevinirim.
inanın ben bu methotsal durumu aydınlatmam gerektiği inancındayım. yani hangi methotla 10.000 kayıt veya daha fazla kaydı fatura üzerine getiriyor ve kullanıcının seçmesiyle fatura üzerine ilgili kaydı alıyor bu konuda tecrübesi olan arkadaşlar yardımcı olursanız çok sevinirim.
--------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Merhabaxcom yazdı:Allah razı olsun. dedikleriniz konusunda haklısın ama bu fatura üzerinde stok listesini getiren arkadaşlar 10.000 kayıtlı bir table dan nasıl getiriyorlar bu stok listesini.
inanın ben bu methotsal durumu aydınlatmam gerektiği inancındayım. yani hangi methotla 10.000 kayıt veya daha fazla kaydı fatura üzerine getiriyor ve kullanıcının seçmesiyle fatura üzerine ilgili kaydı alıyor bu konuda tecrübesi olan arkadaşlar yardımcı olursanız çok sevinirim.
Dostum öncelikle dosya yapısını, sorguyu burya yazki bir bakalım. bizler programciyiz medyum değiliz. Halilyede farazi fikir üretiyoruz. biz nerden bilelim senin sorguyu nasıl çektiğini.
Saygılar
Haklsınız. kullandığım kod çok basit aşağıdaki gibidir.
Kod: Tümünü seç
dms.stokkarttx.Close;
dms.stokkarttx.CommandText:='select stokkod,stokad from stokarti';
dms.stokkarttx.Prepared:=true;
dms.stokkarttx.Open;
--------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
Sadece iylik için yaşa ve iylik ile hayat et...
-------------------------------------------------------------------------------------------------
-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Merhaba bu konuda biraz detay vermeniz mümkünmü. Çünkü çok işe yarayacak bir şey bu;ibrahimcoban yazdı:Ado ile bağlantıda MaxRecords özelliğini kullanabilirsin buraya 1000 gibi bir sayı yazarsan ilk 1000 kayıt gelir ve cursor ilerledikçe sonraki kayıtlar vt den okur.
Ayrıca CursorLocation ve CursorType özelliğiyle ilgili geniş bir döküman okursan senin için iyi olur.
bende araştıracağım ama yinede yazarsanız makbule gecer