var
begintime: Tdatetime;
endtime : Tdatetime;procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
Try
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.parambyname('endtime').Value := DateTimePicker2.DateTime;
ADOQuery1.sql.Add('select * from Table1 where call =''' +Edit2.Text+''' and begin<:endtime and begin >: begintime');
except
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select * from Table1 where call ='''+Edit2.Text+'''');
end;
ADOQuery1.Open;
ADOQuery1.Active := True;
end;有错误!!没有找到"begintime" 我已经定义过SQL变量begintime和endtime了 不知道为什么?
begintime: Tdatetime;
endtime : Tdatetime;procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
Try
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.parambyname('endtime').Value := DateTimePicker2.DateTime;
ADOQuery1.sql.Add('select * from Table1 where call =''' +Edit2.Text+''' and begin<:endtime and begin >: begintime');
except
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select * from Table1 where call ='''+Edit2.Text+'''');
end;
ADOQuery1.Open;
ADOQuery1.Active := True;
end;有错误!!没有找到"begintime" 我已经定义过SQL变量begintime和endtime了 不知道为什么?
ADOQuery1.Close;
ADOQuery1.SQL.Clear; ---看你这部分,已经把sql清了,所以就出问题了.
Try
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
这种方法的时候需要adoquery1.Prepared := false;
赋值
Prepared:=true;
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.parambyname('endtime').Value := DateTimePicker2.DateTime; 换一下位置吧
begintime: Tdatetime;
endtime : Tdatetime;
就在这里定义的?
params.create('')
不是上面的这样定义吗?
var
begintime: Tdatetime;
endtime : Tdatetime; procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;-----------------------------------你将SQL.TXT清了,何来变量???????
Try
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.parambyname('endtime').Value := DateTimePicker2.DateTime;
ADOQuery1.sql.Add('select * from Table1 where call =''' +Edit2.Text+''' and begin <:endtime and begin >: begintime');
except
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select * from Table1 where call ='''+Edit2.Text+'''');
end;
ADOQuery1.Open;
ADOQuery1.Active := True;
end;
var
begintime: Tdatetime;
endtime : Tdatetime; procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
Try
ADOQuery1.sql.Add('select * from Table1 where call =''' +Edit2.Text+''' and begin <:endtime and begin >: begintime');
ADOQuery1.Parameters.ParamByName('begintime').Value := DateTimePicker1.DateTime;
ADOQuery1.Parameters.parambyname('endtime').Value := DateTimePicker2.DateTime; except
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select * from Table1 where call ='''+Edit2.Text+'''');
end;
ADOQuery1.Open;
end;
begintime: Tdatetime;
endtime : Tdatetime;
这3行不需要,然后 要用Datetimetostr做转换 ADOQuery1.sql.Add('select * from Table1 where call =''' +Edit2.Text+''' and begin <:endtime and begin > : begintime');
ADOQuery1.Parameters.ParamByName('begintime').Value := Datetimetostr(DateTimePicker1.DateTime);
ADOQuery1.Parameters.parambyname('endtime').Value := Datetimetostr(DateTimePicker2.DateTime);