SQL sorgusu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

SQL sorgusu

Mesaj gönderen xcom »

Merhaba Arkadaşlar benim bir problemim var neyden kaynaklandığını bir turlü bulamıyorum. SQL olarak table bir sorgu gönderiyorum ama ilginç olan tarih aralığına göre istediğim aralığı getirmiyor. yani iki tarih arası çıkıyor ama kesinlikle ilgili kayıtların hepsi gelmiyor yanlızca bir kısmı gliyor ben birtürli anlamadım. kod aşağıdaki gibidir.

Kod: Tümünü seç

SELECT     *
FROM         fatsatic
WHERE     (Fattarihi BETWEEN '2006.06.01' AND '2006.06.30') AND (fattipall = '2') AND (depo = 'Merkez')
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
ikut

Re: SQL sorgusu

Mesaj gönderen ikut »

xcom yazdı:Merhaba Arkadaşlar benim bir problemim var neyden kaynaklandığını bir turlü bulamıyorum. SQL olarak table bir sorgu gönderiyorum ama ilginç olan tarih aralığına göre istediğim aralığı getirmiyor. yani iki tarih arası çıkıyor ama kesinlikle ilgili kayıtların hepsi gelmiyor yanlızca bir kısmı gliyor ben birtürli anlamadım. kod aşağıdaki gibidir.

Kod: Tümünü seç

SELECT     *
FROM         fatsatic
WHERE     (Fattarihi BETWEEN '2006.06.01' AND '2006.06.30') AND (fattipall = '2') AND (depo = 'Merkez')
1. tablonuz nerde durur hang vt de
2. tarih formatınız uygunmu. accesste veya sql query builder de denemedinizmi
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

xcom'un yazdıklarının yanı sıra, WHERE şartınızda başka filtreler de uygulamışsınız. Yani her Tarihi tutan gelmez, Depo'su Merkez olup Fatiptal'i 2 olan kayıtları getir diye bir şart var.

Bunların dışında, Query'lerinizde, Parametre geçişlerini yapın, tarih, float alan gibi değerlerde sıkıntı yaşamazsınız. Query'i doğrudan Text olarak build etmeyin (ama parametrik alanlarınızı)

Örnek;

Kod: Tümünü seç

  Query1.SQL.Text := 'SELECT * FROM TABLO WHERE TARIH >= '20060101' AND OLCUM < 1.25' ;
yerine

Kod: Tümünü seç

  Query1.SQL.Text := 'SELECT * FROM TABLO WHERE TARIH >= :DT_TARIH AND OLCUM < :FLT_DEGER' ;
  Query1.ParamByName('DT_TARIH').AsDateTime := dtpTarih.Date ;
  Query1.ParamByName('FLT_DEGER').AsFloat := dblOlcumDegeri ;
gibi kullanına. Eğer ADO kullanıyorsanız parametreleri, Query1.Parameters.ParamByName şeklinde çağırbilirsiniz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Bilgi için teşekkür ederim. sorun <benim <pc de çıktı. programı yeniden kurdum düzeldi. şimdilik problem yok gibi ama delphi neden böyle tutarsız bir hal aldı anlıyamadım.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Sorun düzelmiş olsada @Kuri_YJ üstadın örnekte verdiği gibi parametre kullanarak sorgulamanı tavsiye ederim.Sonuçta bu tip sorgulamalarda hata çıkması muhtemel.
Kolay gelsin.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Tutarsızlık Delphi'de değildir emin ol !... Eğer öyle bir şey olsaydı, bu kadar yükselmezdi Delphi. Sorun büyük ihtimalle kurulumdan kaynalıdır (ki sen de yeniden kurup düzeltmişsin).

Ama parametrik kullanıma dönmeni şiddetle tavsiye ederim (hele yazdığın programlar) birden fazla yerde ve işletim sisteminde çalışacaksa başın ağrımaz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Doğru dersin üstad bizdede biraz cehalet yok değil. öğrenmeninde yapmanında sonu yok. bildiğimiz yerekadar bir yorum yapıyoruz.Haklısın.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Estağfurullah gözüm,

Biz de o yerlerden geçtik siz de uğraşmayın diye söylüyoruz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla