var tar1 : String;
begin
tar1:=datetostr(terDateA.Date);
with module.adoStokRapor do
begin
Close;
SQL.Clear;
SQL.Add ('select * from IVR_SIPARIS where siparis_no like '+#39+siparisNo.text+#37+#39);
SQL.Add (' and sezon like '+#39+sezon.text+#37+#39);
SQL.Add (' and kumas_icerik like '+#39+kumasicerik.text+#37+#39);
SQL.Add (' and model_tanim like '+#39+modelTanim.text+#37+#39);
SQL.Add (' and adet like '+#39+adet.text+#37+#39);
// SQL.Add (' and termin_tarihi =');
// SQL.Add(''''+tar1+'''');
Open;
Connection nesnesinin AfterConnect olayında ya da bu tür sorgulardan önce tarih biçimini "set dateformat dmy" komutu ile gün.ay.yıl yaparak çalışırsanız hata düzelecektir. Tabi 30 Şubat, 31 Eylül, 32 Ekim, 13. ay gibi değer girişler yapılmaya çalışılırsa yine aynı hata gelecektir.
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .
with module.adoStokRapor do
begin
// Close; // buna gerek yok, zaten SQL.Text değiştiğinde zaten kapanır
// SQL.Clear; // Aşağıdaki gibi Add kullanmadan Text'e direkt atayabilirsin.
SQL.Text := 'select * from IVR_SIPARIS where siparis_no like ''' + SiparisNo.text + '%'' ' +
'and sezon like ''' + Sezon.text + '%'' ' +
'and kumas_icerik like ''' + Kumasicerik.text + '%'' ' +
'and model_tanim like ''' + ModelTanim.text + '%'' ' +
'and adet like ''' + Adet.text + '%'' ' +
'and termin_tarihi = :pTermin';
Parameters.ParamByName('pTermin').Value := terDateA.Date;
Open;
....
Merhaba Verdiğiniz kod çalışmıyor sql den izlediğimde gelen sorgu aşağıdaki şekilde sanırım tarihi alanını hiç yollamamış program verdiğiniz kodla yardımcı olursanız sevinirim.
select sum(adet) as toplam from IVR_SIPARIS where kesim_onayla=0 and siparis_no like '609%'
and sezon like '%'
and kumas_icerik like '%'
and model_tanim like '%'
and adet like '%'
Tüm kriterleri doldurup denediniz mi? Tarihin SQL trace'de görünmemesi çok enteresan.
Ayrıca kurduğunuz mantık ile ilgili bir hata var görünüyor. Sınırlamak istemediğiniz kriterler boş olsa bile daima sorguda geçiyor. Şu şekilde yapmanız daha doğru olacaktır.
SQL.Text := 'select * from IVR_SIPARIS where siparis_no like ''' + SiparisNo.text + '%''';
if Trim(Sezon.text) <> '' then
SQL.Text := SQL.Text + ' and sezon like ''' + Sezon.text + '%''';
if Trim(Kumasicerik.text) <> '' then
SQL.Text := SQL.Text + ' and kumas_icerik like ''' + Kumasicerik.text + '%''';
if Trim(ModelTanim.text ) <> '' then
SQL.Text := SQL.Text + ' and model_tanim like ''' + ModelTanim.text + '%''';
if Trim(Adet.text ) <> '' then
SQL.Text := SQL.Text + ' and adet like ''' + Adet.text + '%''';
SQL.Text := SQL.Text + ' and termin_tarihi=:pTermin';
Parameters.ParamByName('pTermin').Value := terDateA.Date;
Open;