sql := 'SELECT * FROM TABLO WHERE ' ;
if Length(editAdı.Text) > 0 then
sql := sql + 'ADI = ' + QuotedStr(editAdı.Text) ;
if Length(editSoyAdı.Text) > 0 then
sql := sql + ' AND SOYADI = ' + QuotedStr(editSoyAdı.Text) ;
if Length(editDogumYeri.Text) > 0 then
sql := sql + ' AND DOGUM_YERI = ' + QuotedStr(editDogumYeri.Text) ;
if Length(editDogumTarihi.Text) > 0 then
sql := sql + ' AND DOGUM_TARIHI = ' + QuotedStr(editDogumTarihi.Text) ;
ARKADASLAR yukarıdaki kodu MSSQL SERVERDA NASIL YAZARIM ACABA (asagidakine benzer bir sekilde)
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from deneme Where ADI Like'+#39'%'+edit1.Text+'%'+#39);
ADOQUERY1.Open;
MESELA 4 TANE Sütunum var ve ben bir tane buton ile 4 tane edit kutusunda sorgu yapmak istiyorum yukarıdaki gibi
tabloda coklu sorgu calistirabilmek
Re: tabloda coklu sorgu calistirabilmek
belki tam istediğin değil ama sqli koşulsuz olarak aç sonra queryin filtreleme özelliğini kullanarak istediğin şartlara göre filitrele...
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
SOKRATES
Re: tabloda coklu sorgu calistirabilmek
Selamlar,
Rew arkadaşımızın tavsiyesi, kısıtlı kayıt sayısındaki tablolarda verimli olabilir ama kayıt sayısı yüksek tablolarda performansınızı mahveder.
Şimdi gelelim sorunuza,
Öncelikle, Query'lerin ParamByName gibi parametrelerini set edebilirsiniz. Bunu neden söylüyorum. Tarih, saat, float alan, string alan gibi sorgulamada Where şartınıza eklediğiniz bilgileri aktarırken Windows'un Locale settingsleri nedeniyle başınız ağrımaz.
Şöyle örnekleyelim,
Bu kodu,
Şimdi bu tarz kullanımlarda sıkıntı çekmeden, tarih saat formatı ne olursa olsun sorgulama çekebilirsiniz. Aynı şeyi string veya float alanlarda da uygulayabilirisiniz.
Kolay Gelsin.
Not : Sanırım AdoQuery'de ParamByName özelliği sanki bir başka propertynin altındaydı galiba ona dikkat edin. Şu anda hatırlayamadım.
Rew arkadaşımızın tavsiyesi, kısıtlı kayıt sayısındaki tablolarda verimli olabilir ama kayıt sayısı yüksek tablolarda performansınızı mahveder.
Şimdi gelelim sorunuza,
Öncelikle, Query'lerin ParamByName gibi parametrelerini set edebilirsiniz. Bunu neden söylüyorum. Tarih, saat, float alan, string alan gibi sorgulamada Where şartınıza eklediğiniz bilgileri aktarırken Windows'un Locale settingsleri nedeniyle başınız ağrımaz.
Şöyle örnekleyelim,
Kod: Tümünü seç
SELECT *
FROM TBL_STOK_HAREKET
WHERE STK_TARIH >= :DT_TARIH1
AND STK_TARIH <= :DT_TARIH2
Kod: Tümünü seç
AdoQuery1.Close ;
AdoQuery1.SQL.Text := 'SELECT * '
+'FROM TBL_STOK_HAREKET '
+'WHERE STK_TARIH >= :DT_TARIH1 '
+' AND STK_TARIH <= :DT_TARIH2 ';
AdoQuery1.ParamByName('DT_TARIH1').AsDateTime := edtTarih1.DateTime ;
AdoQuery1.ParamByName('DT_TARIH2').AsDateTime := edtTarih2.DateTime ;
AdoQuery1.Open ;
Kolay Gelsin.
Not : Sanırım AdoQuery'de ParamByName özelliği sanki bir başka propertynin altındaydı galiba ona dikkat edin. Şu anda hatırlayamadım.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/