begin
s :='select * from 收入明细表 where shouruxiangmu in';
for i :=0 to ListBox2.Items.Count-1 do
if str='' then
str:=str+''''+ListBox2.Items.Strings[i]+''''
else
str:=str+','''+ListBox2.Items.Strings[i]+'''';
str:=s+'('+str+')'; with dataa.ADOQuery1 do
begin
close;
strs:=('select * from'+'('+str+')'+'where zhichushijian>=:c and zhichushijian<= :b');
Parameters.ParamByName('c').Value := Trunc(DateTimePicker1.Date) ;
Parameters.ParamByName('b').Value := Trunc(DateTimePicker2.Date);
sql.Text:=strs;
open;
end;
if dataa.ADOQuery1.RecordCount>0 then
DataSource1.DataSet := Dataa.ADOQuery1;
end;
编译能通过,但是执行该代码时候出现:“ADOQuery1:paramter 'c' not found。”
s :='select * from 收入明细表 where shouruxiangmu in';
for i :=0 to ListBox2.Items.Count-1 do
if str='' then
str:=str+''''+ListBox2.Items.Strings[i]+''''
else
str:=str+','''+ListBox2.Items.Strings[i]+'''';
str:=s+'('+str+')'; with dataa.ADOQuery1 do
begin
close;
strs:=('select * from'+'('+str+')'+'where zhichushijian>=:c and zhichushijian<= :b');
Parameters.ParamByName('c').Value := Trunc(DateTimePicker1.Date) ;
Parameters.ParamByName('b').Value := Trunc(DateTimePicker2.Date);
sql.Text:=strs;
open;
end;
if dataa.ADOQuery1.RecordCount>0 then
DataSource1.DataSet := Dataa.ADOQuery1;
end;
编译能通过,但是执行该代码时候出现:“ADOQuery1:paramter 'c' not found。”
Parameters.ParamByName('b').Value := Trunc(DateTimePicker2.Date);
sql.Text:=strs; 次序调一下,调成这样:
close;
sql.clear; //----这句最好要加上strs:=.....sql.Text:=strs;
Parameters.ParamByName('c').Value := Trunc(DateTimePicker1.Date) ;
Parameters.ParamByName('b').Value := Trunc(DateTimePicker2.Date);
要么用CreateParameters()
strs:=('select * from['+str+'] where zhichushijian>=:c1 and zhichushijian <= :b1');
'c'这个字符最好不要单独用,后面加个数字就Ok了
Parameters.ParamByName('c').Value := Trunc(DateTimePicker1.Date) ;
Parameters.ParamByName('b').Value := Trunc(DateTimePicker2.Date);