不好意思问大家一个问题:为什么我这段代码执行下来,检索出来的数据为空,实际上数据库里面又符合条件的数据?
procedure TForm2.FormCreate(Sender: TObject);
var
mydate:tdate;
begin
mydate:=form2.MonthCalendar1.Date;
adoquery1.Active:=true;
with adoquery1 do
begin
close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');
open;end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;end.
procedure TForm2.FormCreate(Sender: TObject);
var
mydate:tdate;
begin
mydate:=form2.MonthCalendar1.Date;
adoquery1.Active:=true;
with adoquery1 do
begin
close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');
open;end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;end.
应该
Parameters.ParaByName('mydate').value := MyDate
再 Open
// 应该是这样的
liuqifeiyu(liuqi)的提示 mydate没有定义!难道没人知道吗???
Parameters.ParaByName('mydate').value := StrToDate(MyDate)
再 Open
var
mydate:tdate;
我已经把它定义为日期型了呀!!!
Parameters.ParaByName('mydate').value := datetostr(MyDate)
再 Open
Parameters.ParaByName('mydate').value := MyDate;
var
mydate:Tdate;
adoquery1.SQL.Add('select * from 发车表 where 发车时间=str(mydat)
var
mydate:string;
begin
mydate:=datetostr(form2.MonthCalendar1.Date);
adoquery1.Active:=true;
with adoquery1 do
begin
close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');
adoquery1.Parameters[0].Value:=date;
adoquery1.Open;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;end.
我代码改成这样就能执行了!!!
或者
procedure TForm2.FormCreate(Sender: TObject);
var
mydate:string;
begin
mydate:=datetostr(form2.MonthCalendar1.Date);
adoquery1.Active:=true;
with adoquery1 do
begin
close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');
adoquery1.Parameters.ParamByName('mydate').Value:=date;
adoquery1.Open;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;end.