sql araması yaparken progressbar eklemek

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
onselder
Üye
Mesajlar: 54
Kayıt: 09 Şub 2005 05:56
Konum: samsun
İletişim:

sql araması yaparken progressbar eklemek

Mesaj gönderen onselder »

selamun aleykum
arkadaşlar tablomda 2000 den fazla kayıt var
where komutu ile arama yaptırırken buna nasıl progressbar ekleyebelirim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Sql ile yapmış olduğunuz arama işlemlerinin progresbar kullanacak kadar ağır çalışması sizin yapınızda sorun olduğunu gösterir.

Been 1.000.000 ile 5.000.000 kayıt arasında işlem hacmine sahip ve her bir veri tabanı ve her veri tanaında 30 ile 100 arasında alan var.

Yani uzun sözün kısası hocam sen yanlış bir denklem kurmuşsun bu yüzden senin sorgulama işlemin uzun sürüyordur.

Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
onselder
Üye
Mesajlar: 54
Kayıt: 09 Şub 2005 05:56
Konum: samsun
İletişim:

Mesaj gönderen onselder »

yardımın için teşekkur ederim
tekrar inceleyeceğim
tekrar sağol
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Rica ederim hocam ne demek.

eğer sorunu çözemezseniz yazarsanız yadrımcı olurum.

Not: SQL ile arama yaparken yapılan sorgunun karmaşıklığı ve birleştirilme veri tabanlarıda göz önünü alınarak sorgunun süresinde uzama olağandır. Ama Sizin çok karmaşık bir yapınız olmadığını düşünerek bu cevabı verdim. Bu arada, Not kısmı açıklamadan uzun olmuş :D

Saygılarımla
Çalışmalarınızda başarılar.
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Rx paketinde bunun için bir bileşen var, inceleyebilirsiniz..
Kolay gele..
Kullanıcı avatarı
onselder
Üye
Mesajlar: 54
Kayıt: 09 Şub 2005 05:56
Konum: samsun
İletişim:

Mesaj gönderen onselder »

rx paketinde ki bilşenin adı nedir? veya başka bir yolunu bilen arkadaş var mı? sorgumu düzelttim artık 1 saniyede açılıyor. ama öğrenmek için soruyorum arkadaşlar
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

sorgunun ne kadar surecegini bilemediigimiz icin bi progresbar koymak biraz zor bir is ama onun yerine sorgu suresince ekrana bi animasyon cikartmak uygun olabilir

mesela şöyle birşey yazılarıbilir

Kod: Tümünü seç

frmAnimasyon := tfrmAnimasyon.Create(nil)
frmAnimasyon.Show
Sorgu1.open;
frmAnimasyon.Close
frmAnimasyon.free;
sorgu suresince ekranda bi animasyon görünmüş olur.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

sadettin o sorgu open'da çakılırsa senin animasyon ekranda habire dönüp durur yaw.

Şöyle yapsak.

Kod: Tümünü seç

with tfrmAnimasyon.Create(nil) do
try
  Show;
  Sorgu1.open;
finally
  free;
end;
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Rx paketinde, DBAvare tabında DBProgress adında bu iş için yazılmış bir bileşen var.Demosunda örneği de mevcut..

Kolay gele..
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

@coderlord, haklısın finally bloguna almak lazım

@bLue aLonE, yanılmıyorsam bahsettigin bilesen sadece kendisine baglanan veriye gore progressbarın pozisyonunu değiştiriyor olması lazım.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Kendisine bağlanandan kastın nedir, sadece progress bağlıyorsun..
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

yani tablodaki adet alanını bu progrese bağlayınca ilgili kayıttaki adet 50 ise progresbarın pozisyonu 50 ye geliyor, 45 ise 45 e gibi... ben bi ara kullanmıştım ve bu şekilde olduğunu hatırlıyorum.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Farklı bileşenlerden bahsediyoruz gibime geldi;

Kod: Tümünü seç

  TDBProgress = class(TComponent)
  private
    FActive: Boolean;
    FStartTime: Longint;
    FTimer: TRxTimer;
    FWaitCursor: TCursor;
    FGauge: TControl;
    FMessageControl: TControl;
    FStreamedValue: Boolean;
    FGenProgressCallback: TObject;
    FQryProgressCallback: TObject;
    FOnMessageChange: TOnMessageChange;
    FOnPercentChange: TOnPercentChange;
    FOnProgress: TOnProgressEvent;
{$IFDEF WIN32}
    FTraceFlags: TTraceFlags;
    FTraceCallback: TObject;
    FTrace: Boolean;
    FOnTrace: TOnTraceEvent;
    FSessionName: string;
    FSessionLink: TObject;
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

evet farklı bileşenlerden bahsediyormuşuz.
rx'i indirip kurdum ilgili bileşenide biraz kurcaladım ama tam olarak nasıl çalıştığını anlamadım. ornekler var demişsiniz ama benim indirdiğim dosyada ornekler mevcut değildi.

incelediğim kadar arka plandaki sql leri trace edip ona göre hareket ediyor.

benim merak ettiğim, işlem süresi 5 dakika sürecek bir query1.open komutunda nasıl bir tepki verdiği. ufak bir örnek verebilirseniz sevinirim.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Evet aynen öyle, trace ederek yapıyor bu işi, detaylı olarak inceleme fırsatım olmadı gerçi.. Arkadaşın birisi bunu yapmıştı daha önce, bi sorayım hele...
Cevapla