你好,我如何在 sql 中准备动态 where 我的表单元素 edit1、edit2、edit3 和 datetimepicker1、2
如果用户无法选择 datetimepicker 则必须查询select * from table
如果用户选择 datetimepicker 那么按钮问题
也
可以
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('where siptar>=');
adoquery1.sql.add(QuotedStr(DateTostr(DateTimePicker1.DateTime)+' 00:00:00.000')+' and siptar <=');
adoquery1.sql.add(QuotedStr(DateTostr(DateTimePicker2.DateTime)+' 23:59:59.000'));
adoquery1.Open;
我找到了必要的代码..
ADOQuery1.sql.clear;
ADOQuery1.sql.add('select ck.cname, si.rkod, sk.location, sk.sipno, sh.skod, convert(varchar(50), sk.siptar, 105) as siptar from siparis_kay sk');
ADOQuery1.sql.add('left join siparis_har sh on sh.sipno = sk.sipno');
ADOQuery1.sql.add('left join cari_kart ck on ck.ckod = sk.Carikod');
ADOQuery1.sql.add('left join si_gchar si on si.fisno = sh.sipno and si.fisharInx=sh.sipharinx and si.skod = sh.skod');
ADOQuery1.SQL.add('WHERE 1=1' );
If EdtStok.Text <> '' then
ADOQuery1.SQL.Add('and sh.skod >= ' + QuotedStr(EdtStok.Text));
If EdtStok1.Text <> '' then
ADOQuery1.SQL.Add('and sh.skod <= ' + QuotedStr(EdtStok1.Text));
If EdtCari.Text <> '' then
ADOQuery1.SQL.Add('and ck.ckod >= ' + QuotedStr(EdtCari.Text));
If EdtCari1.Text <> '' then
ADOQuery1.SQL.Add('and ck.ckod <= ' + QuotedStr(EdtCari1.Text));
If EdtLocation.Text <> '' then
ADOQuery1.SQL.Add('and sk.location = ' + QuotedStr(EdtLocation.Text));
ADOQuery1.sql.add('and siptar >= ' + QuotedStr(DateTostr(dtpbas.DateTime) + ' 00:00:00.000'));
ADOQuery1.sql.add('and siptar <= ' + QuotedStr(DateTostr(dtpbit.DateTime) + ' 23:59:59.997'));