özgür arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

Mesaj gönderen EeCOMP »

selamlar arkadaslar
hepinize ilginizden dolayı çok teşekkür ederim sorunum çözüldü fakat ufak bir problemim daha var

Kod: Tümünü seç

var
sql:string;
begin
query1.sql.Clear;
sql:='select * from deneme where 1=1 ';
if edit1.text<>'' then sql := sql + ' and Adi = '''+edit1.text +'''';
if edit2.text<>'' then sql:=sql+'and Soyadi= '''+edit2.text +'''';
if edit5.text<>'' then sql:=sql+'and Gozrenk= '''+edit5.text +'''';
if edit3.text<>'' then sql:=sql+'and No= '''+edit3.text +'''';
query1.sql.add(sql);
query1.open;
problemimi yukarıdaki kodlar ile çözdüm şimdi istediğim şekilde filtreleme yapıyo fakat son if satırında numara girdiğim editler için bu kod geçerli olmuyo rakam girilen editler için bu komutu kullandığımda

invalid use of keyword

şeklinde hata veriyo
bunu nasıl çözebilirim
hepinize çok teşekkür ederim
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

SQL'de rakamları tırnak içinde yazmazsınız. Yani SQL cümlesinde o satır

...
AND NO=5

gibi olmalı. sizin eklediğinizde ise tırnak var. ilgili satırdaki kod şu şekilde olmalı :

if edit3.text<>'' then sql:=sql+'and No= '+edit3.text ;

Kolay gelsin.
Kullanıcı avatarı
recepgalip
Üye
Mesajlar: 60
Kayıt: 12 Haz 2003 04:50
Konum: Mersin/Rize
İletişim:

Mesaj gönderen recepgalip »

Kod: Tümünü seç

var 
sql:string; 
begin 
query1.sql.Clear; 
sql:='select * from deneme where 1=1 '; 
if edit1.text<>'' then sql := sql + ' and Adi = '''+edit1.text +''''; 
if edit2.text<>'' then sql:=sql+'and Soyadi= '''+edit2.text +''''; 
if edit5.text<>'' then sql:=sql+'and Gozrenk= '''+edit5.text +''''; 
if edit3.text<>'' then sql:=sql+'and No= '''+edit3.text +''''; 
query1.sql.add(sql); 
query1.open
arkadaşım böle yazarak kendine işkence etme
bak sana aynı yere çıkan vede daha kullışlı ve hata oranı yok (ben kullandıklarımda çıkmıyo)bak şile. ben sana bunu 3 değ. için alayım.

Kod: Tümünü seç

var
a,b,c:string;
if edit1.text<>'' then a:=' and Adi = '''+edit1.text +'''' else a:='';
if edit2.text<>'' then b:=' and Soyadi= '''+edit2.text +'''' else b:=''; 
if edit3.text<>'' then c:=' and Gozrenk= '''+edit3.text +'''' else c:='';
data.sql.tex:='select * from deneme where 1=1'+a+b+c;
bak bole dene eğer texler boşşa sorguşartlarıda boş olacak. dolu ise sorguya katılacak. iyi çalışmalar. diğer şekilde hata çıkma olayı yuksek. eğer diyosan ille ben yazdığım gibi yapacam. o zaman sorgyu çalıştırmadan once sql bi yazdır. bak bakalım nerde hata yapıyon.
ALLAH NAMINA VER.. ALLAH NAMINA AL.. ALLAH NAMINA BAŞLA.. ALLAH NAMINA İŞLE VESSELAM
SAYGILARIMLA BEN...
Kullanıcı avatarı
recepgalip
Üye
Mesajlar: 60
Kayıt: 12 Haz 2003 04:50
Konum: Mersin/Rize
İletişim:

Mesaj gönderen recepgalip »

merhabalar tekrar ben. evet .mustafa hoca haklı.sayıyal bi alanı tırnak içine yazmamlısın.ama gel sen kendine ile işkence yapma. benim yontemide bi dene. :lol:
ALLAH NAMINA VER.. ALLAH NAMINA AL.. ALLAH NAMINA BAŞLA.. ALLAH NAMINA İŞLE VESSELAM
SAYGILARIMLA BEN...
Cevapla