merhaba, arkadaşlar
queryde 2-3 tabloyu birleştirerek dbgrid de gösteriyorum fakat
arama editinde girilen kodu arattırırken aşaüıdaki kodu kullanıyorum.
with ADOQuery1 do
begin
close;
ADOQuery1.SQL.Add(' where bar_kodu like '+#39+#37+edit1.Text+#37+#39);
Open;
ilk aramayı doğru yapıyor fakat. 2. aramaya izin vermiyor. hata alıyorum
edit ile sorgulama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: edit ile sorgulama
Merhaba,
Sürekli ekleme yaptığınız için hata alıyorsunuz. İkinci çalıştırmada sorgu aşağıdaki örnekteki gibi iki tane "where" içeriyor olacak. Bu da hatalı SQL olmuş olur.
Sorgunuzu form üzerinde tanımlarken kaçıncı satırın "where" ifadesi içereceğini bilirseniz (örneğe dikkat edin. En son satır var ve boş)
kodunuzu aşağıdaki gibi yazabilirsiniz.
ADOQuery1.SQL sıfır tabanlı indekse sahiptir. Yukarıdaki örnek SQL de 3 numaralı satır boş bırakıldığı için ADOQuery1.SQL[2] kullandık.
Sorgulama yapmayacağınız/kaldıracağınız zaman basitçe aşağıdaki şekilde atama yapabilirsiniz.
Sürekli ekleme yaptığınız için hata alıyorsunuz. İkinci çalıştırmada sorgu aşağıdaki örnekteki gibi iki tane "where" içeriyor olacak. Bu da hatalı SQL olmuş olur.
Kod: Tümünü seç
select * from abc
where bar_kodu like '%123%'
where bar_kodu like '%456%'
Kod: Tümünü seç
select * from abc
where 1=1
Kod: Tümünü seç
ADOQuery1.SQL[2] := 'and bar_kodu like ' +#39+#37+edit1.Text+#37+#39;
Sorgulama yapmayacağınız/kaldıracağınız zaman basitçe aşağıdaki şekilde atama yapabilirsiniz.
Kod: Tümünü seç
ADOQuery1.SQL[2] := EmptyStr;
Re: edit ile sorgulama
ertank yazdı: ↑15 Ağu 2022 06:02 Merhaba,
Sürekli ekleme yaptığınız için hata alıyorsunuz. İkinci çalıştırmada sorgu aşağıdaki örnekteki gibi iki tane "where" içeriyor olacak. Bu da hatalı SQL olmuş olur.Sorgunuzu form üzerinde tanımlarken kaçıncı satırın "where" ifadesi içereceğini bilirseniz (örneğe dikkat edin. En son satır var ve boş)Kod: Tümünü seç
select * from abc where bar_kodu like '%123%' where bar_kodu like '%456%'
kodunuzu aşağıdaki gibi yazabilirsiniz.Kod: Tümünü seç
select * from abc where 1=1
ADOQuery1.SQL sıfır tabanlı indekse sahiptir. Yukarıdaki örnek SQL de 3 numaralı satır boş bırakıldığı için ADOQuery1.SQL[2] kullandık.Kod: Tümünü seç
ADOQuery1.SQL[2] := 'and bar_kodu like ' +#39+#37+edit1.Text+#37+#39;
Sorgulama yapmayacağınız/kaldıracağınız zaman basitçe aşağıdaki şekilde atama yapabilirsiniz.Kod: Tümünü seç
ADOQuery1.SQL[2] := EmptyStr;
sanırım sql kodda hata yapıyorum. 2. ye bazende sfiyat_fiyati alanını bulamıyor
bi bakabilirmsnz
Kod: Tümünü seç
SELECT bar_stokkodu As "Stok Kodu",sto_isim As "İsim", sfiyat_fiyati As "1. Satış Fiyatı", bar_kodu As "Barkodu" FROM BARKOD_TANIMLARI
inner join stoklar on (bar_stokkodu = dbo.STOKLAR.sto_kod) AND (bar_birimpntr = 1)
inner join STOK_SATIS_FIYAT_LISTELERI on (Stoklar.sto_kod=sfiyat_stokkod) and (sfiyat_listesirano = 1)