下面是我写的一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
tmptime:string;
cmd:string;
applyunit:string;
begin
tmptime:=formatdatetime('yyyy-MM-dd',datetimepicker1.DateTime);
applyunit:=edit1.Text;
cmd:='';
if tmptime<>'' then
if cmd='' then
cmd:='填报日期=:aa'
else
cmd:=cmd+ 'and 申请日期=:aa' ;
if applyunit<>'' then
if cmd='' then
cmd:='申请单位='+applyunit
else
cmd:=cmd+'and 申请单位='+applyunit ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from hr.cutdata where'+cmd);
query1.ParamByName('aa').AsDateTime:=strtodatetime(tmptime);
query1.ExecSQL; //运行到此步出错
query1.Open;
end;
出错信息为:sql命令未正确结束
请高手帮我看看联合时间的查询语句怎么写,问题在哪,非常感谢,
procedure TForm1.Button1Click(Sender: TObject);
var
tmptime:string;
cmd:string;
applyunit:string;
begin
tmptime:=formatdatetime('yyyy-MM-dd',datetimepicker1.DateTime);
applyunit:=edit1.Text;
cmd:='';
if tmptime<>'' then
if cmd='' then
cmd:='填报日期=:aa'
else
cmd:=cmd+ 'and 申请日期=:aa' ;
if applyunit<>'' then
if cmd='' then
cmd:='申请单位='+applyunit
else
cmd:=cmd+'and 申请单位='+applyunit ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from hr.cutdata where'+cmd);
query1.ParamByName('aa').AsDateTime:=strtodatetime(tmptime);
query1.ExecSQL; //运行到此步出错
query1.Open;
end;
出错信息为:sql命令未正确结束
请高手帮我看看联合时间的查询语句怎么写,问题在哪,非常感谢,
最好将sql取出来放在数据库中执行试试
在语句: query1.ExecSQL; //运行到此步出错
前加一句 showmessage(query1.sql.text);
看看你送到后台执行的语句到底是什么
where后面注意要有空格。。
还有双引号的问题。。