sql çalışıyor delphide çalışmıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

sql çalışıyor delphide çalışmıyor

Mesaj gönderen erdogan_ozkaya »

arkadaşlar aşağıdaki kod sqlde çalışıyor

Kod: Tümünü seç


select  Cari_Referans, Cari_Adi, 
case when Urun_kodu = 201 then sum(Urun_Adeti) end as P_PİLİÇ,
case when Urun_kodu = 202 then sum(Urun_Adeti) end as CEVIRME,
case when Urun_kodu = 203 then sum(Urun_Adeti) end as A_PİLİÇ,
case when Urun_kodu = 204 then sum(Urun_Adeti) end as CİĞER,
case when Urun_kodu = 205 then sum(Urun_Adeti) end as TAŞLIK,
case when Urun_kodu = 206 then sum(Urun_Adeti) end as Tab_BUT,
case when Urun_kodu = 207 then sum(Urun_Adeti) end as T_BAGET,
case when Urun_kodu = 208 then sum(Urun_Adeti) end as T_PİRZOLA,
case when Urun_kodu = 209 then sum(Urun_Adeti) end as T_SARMA,
case when Urun_kodu = 210 then sum(Urun_Adeti) end as T_BİFTK,
case when Urun_kodu = 211 then sum(Urun_Adeti) end as T_GÖĞÜS,
case when Urun_kodu = 212 then sum(Urun_Adeti) end as T_BONFİLE,
case when Urun_kodu = 213 then sum(Urun_Adeti) end as T_FİLETO,
case when Urun_kodu = 214 then sum(Urun_Adeti) end as T_KANAT,
case when Urun_kodu = 215 then sum(Urun_Adeti) end as AÇIK_BUT,
case when Urun_kodu = 216 then sum(Urun_Adeti) end as AÇIK_GÖĞÜS,
case when Urun_kodu = 217 then sum(Urun_Adeti) end as AÇIK_MUZ_GÖĞÜS,
case when Urun_kodu = 218 then sum(Urun_Adeti) end as A_KANAT,
case when Urun_kodu = 219 then sum(Urun_Adeti) end as ÇORBALIK,
case when Urun_kodu = 220 then sum(Urun_Adeti) end as SCHNTZEL,
case when Urun_kodu = 221 then sum(Urun_Adeti) end as NUGGET,
case when Urun_kodu = 222 then sum(Urun_Adeti) end as G_BLUĞ,
case when Urun_kodu = 223 then sum(Urun_Adeti) end as STIKSC,
case when Urun_kodu = 224 then sum(Urun_Adeti) end as KADIN_BUDU,
case when Urun_kodu = 225 then sum(Urun_Adeti) end as BURGER,
case when Urun_kodu = 226 then sum(Urun_Adeti) end as DÖKME_PANE_BURGER,
case when Urun_kodu = 227 then sum(Urun_Adeti) end as DÖKME_BAGET,
case when Urun_kodu = 228 then sum(Urun_Adeti) end as DÖKME_FYLETO,
case when Urun_kodu = 229 then sum(Urun_Adeti) end as DÖKME_SARMA,
case when Urun_kodu = 230 then sum(Urun_Adeti) end as DÖKME_BİFTEK,
case when Urun_kodu = 231 then sum(Urun_Adeti) end as DÖKME_PİRZOLA,
case when Urun_kodu = 232 then sum(Urun_Adeti) end as DÖNERLİK_FİLOTO,
case when Urun_kodu = 233 then sum(Urun_Adeti) end as SPS_BUT,
case when Urun_kodu = 234 then sum(Urun_Adeti) end as DÖNER  

from siparisler_detay where Siparis_No<>'TEMP' and Durumu='Beklemede' and Siparis_Tarihi>='2012-07-06' and Siparis_Tarihi<='2012-07-06'
group by  Cari_Referans

fakat aynı kodu delphide çalıştıramıyorum :( 'Unknown column 'combobox1'in where clause hatası veriyor nasıl giderebilirim ?

Kod: Tümünü seç

procedure TURUN_KARTLARI_RAPORLAR.Button1Click(Sender: TObject);
begin
    Memo1.Clear;
    SIPARISLER_DETAY_DB.Close;
    SIPARISLER_DETAY_DB.SQL.Clear;
    with SIPARISLER_DETAY_DB,SQL do
   begin
   Add('select  Cari_Referans, Cari_Adi,');
   Add('case when Urun_kodu = 201 then sum(Urun_Adeti) end as P_PİLİÇ,');
   Add('case when Urun_kodu = 202 then sum(Urun_Adeti) end as CEVIRME,');
   Add('case when Urun_kodu = 203 then sum(Urun_Adeti) end as A_PİLİÇ,');
   Add('case when Urun_kodu = 204 then sum(Urun_Adeti) end as CİĞER,');
   Add('case when Urun_kodu = 205 then sum(Urun_Adeti) end as TAŞLIK,');
   Add('case when Urun_kodu = 206 then sum(Urun_Adeti) end as Tab_BUT,');
   Add('case when Urun_kodu = 207 then sum(Urun_Adeti) end as T_BAGET,');
   Add('case when Urun_kodu = 208 then sum(Urun_Adeti) end as T_PİRZOLA,');
   Add('case when Urun_kodu = 209 then sum(Urun_Adeti) end as T_SARMA,');
   Add('case when Urun_kodu = 210 then sum(Urun_Adeti) end as T_BİFTK,');
   Add('case when Urun_kodu = 211 then sum(Urun_Adeti) end as T_GÖĞÜS,');
   Add('case when Urun_kodu = 212 then sum(Urun_Adeti) end as T_BONFİLE,');
   Add('case when Urun_kodu = 213 then sum(Urun_Adeti) end as T_FİLETO,');
   Add('case when Urun_kodu = 214 then sum(Urun_Adeti) end as T_KANAT,');
   Add('case when Urun_kodu = 215 then sum(Urun_Adeti) end as AÇIK_BUT,');
   Add('case when Urun_kodu = 216 then sum(Urun_Adeti) end as AÇIK_GÖĞÜS,');
   Add('case when Urun_kodu = 217 then sum(Urun_Adeti) end as AÇIK_MUZ_GÖĞÜS,');
   Add('case when Urun_kodu = 218 then sum(Urun_Adeti) end as A_KANAT,');
   Add('case when Urun_kodu = 219 then sum(Urun_Adeti) end as ÇORBALIK,');
   Add('case when Urun_kodu = 220 then sum(Urun_Adeti) end as SCHNTZEL,');
   Add('case when Urun_kodu = 221 then sum(Urun_Adeti) end as NUGGET,');
   Add('case when Urun_kodu = 222 then sum(Urun_Adeti) end as G_BLUĞ,');
   Add('case when Urun_kodu = 223 then sum(Urun_Adeti) end as STIKSC,');
   Add('case when Urun_kodu = 224 then sum(Urun_Adeti) end as KADIN_BUDU,');
   Add('case when Urun_kodu = 225 then sum(Urun_Adeti) end as BURGER,');
   Add('case when Urun_kodu = 226 then sum(Urun_Adeti) end as DÖKME_PANE_BURGER,');
   Add('case when Urun_kodu = 227 then sum(Urun_Adeti) end as DÖKME_BAGET,');
   Add('case when Urun_kodu = 228 then sum(Urun_Adeti) end as DÖKME_FYLETO,');
   Add('case when Urun_kodu = 229 then sum(Urun_Adeti) end as DÖKME_SARMA,');
   Add('case when Urun_kodu = 230 then sum(Urun_Adeti) end as DÖKME_BİFTEK,');
   Add('case when Urun_kodu = 231 then sum(Urun_Adeti) end as DÖKME_PİRZOLA,');
   Add('case when Urun_kodu = 232 then sum(Urun_Adeti) end as DÖNERLİK_FİLOTO,');
   Add('case when Urun_kodu = 233 then sum(Urun_Adeti) end as SPS_BUT,');
   Add('case when Urun_kodu = 234 then sum(Urun_Adeti) end as DÖNER');

   Add('from siparisler_detay where'+' Siparis_No<>'+ComboBox1.Text+' and +'+'Durumu='+ComboBox2.Text+' and Siparis_Tarihi>=:tar1 and Siparis_Tarihi<=:tar2');
   Add('group by  Cari_Referans');

    SIPARISLER_DETAY_DB.Open;
end;
teşekkürler
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: sql çalışıyor delphide çalışmıyor

Mesaj gönderen unicorn64 »

delphide oluşturduğun sql i yani SIPARISLER_DETAY_DB.SQL.Text i koda break point koyup debug ederek yada memo ya falan yazdırarak olayı sen de yakalayabilirdin aslında...
Siparis_No alanın string yani varchar türünde olduğu için where kısıtında tırnak işareti içinde vermelisin, ilk sorguda tırnak var ama delphiden oluştururken tırnak işareti yok....
burada dikkatten kaçan hem delphideki hem de sql deki string başlama bitiş işaretinin tek tırnak işareti olması...
ayrıca sorgunda sipariş no ve durumu arasındaki and den sonra da gereksiz ve hatalı bir + işareti var...
burda sorunu QuotedStr ile giderebileceğin gibi string alanlar için de parametre kullanabilirsin... ki bana sorarsan özellikle tarih ve string alanlar için parametre kullanmak en temiz yol...

Kod: Tümünü seç

Add('from siparisler_detay where Siparis_No<>'+QuotedStr(ComboBox1.Text)+' and Durumu='+QuotedStr(ComboBox2.Text)+' and Siparis_Tarihi>=:tar1 and Siparis_Tarihi<=:tar2');

Kod: Tümünü seç

Add('from siparisler_detay where Siparis_No<>:sipno and Durumu=:durumu and Siparis_Tarihi>=:tar1 and Siparis_Tarihi<=:tar2');
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Cevapla