用的是delphi+sql server+ado,
查询时间的时候是这么写的
procedure TFrm_query.BitBtn_queryClick(Sender: TObject);
var
asql:string;
begin if checkbox1.Checked
then asql:='and(reg_date > :d1) and (reg_date< :d2)' ; if asql<>''
then begin
adoquery_inspect.SQL.Clear;
adoquery_inspect.Close;
adoquery_inspect.SQL.Text:='select * from tb_inspect where check_year is not null '+asql; if checkbox1.Checked
then begin
frm_query.ADOQuery_inspect.Parameters[0].asdatetime:=datetimepicker1.date;
frm_query.ADOQuery_inspect.parameters[1].asdatetime:=datetimepicker2.date;
end; adoquery_inspect.Open;
end
else showmessage('请输入查询条件'); end;
但是在ADOQuery_inspect.Parameters[0].asdatetime:=datetimepicker1.date;报错
大概是sadatetime用的不对,请问为什么?如何修改呢?
查询时间的时候是这么写的
procedure TFrm_query.BitBtn_queryClick(Sender: TObject);
var
asql:string;
begin if checkbox1.Checked
then asql:='and(reg_date > :d1) and (reg_date< :d2)' ; if asql<>''
then begin
adoquery_inspect.SQL.Clear;
adoquery_inspect.Close;
adoquery_inspect.SQL.Text:='select * from tb_inspect where check_year is not null '+asql; if checkbox1.Checked
then begin
frm_query.ADOQuery_inspect.Parameters[0].asdatetime:=datetimepicker1.date;
frm_query.ADOQuery_inspect.parameters[1].asdatetime:=datetimepicker2.date;
end; adoquery_inspect.Open;
end
else showmessage('请输入查询条件'); end;
但是在ADOQuery_inspect.Parameters[0].asdatetime:=datetimepicker1.date;报错
大概是sadatetime用的不对,请问为什么?如何修改呢?
frm_query.ADOQuery_inspect.parameters[1].asdatetime:=datetimepicker2.date;改成
frm_query.ADOQuery_inspect.Parameters[0].Value :=datetimepicker1.date;
frm_query.ADOQuery_inspect.parameters[1].Value :=datetimepicker2.date;
asdatetime不对
把它改成Value,它全是Variant型的
就行啦,我测试通过