不好意思问大家一个问题:为什么我这段代码执行下来,检索出来的数据为空,实际上数据库里面又符合条件的数据?
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.

解决方案 »

  1.   

    adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');// 你在哪里给mydate这个参数赋值???
    应该
    Parameters.ParaByName('mydate').value := MyDate
    再 Open
      

  2.   

    adoquery1.SQL.Add('select * from 发车表 where 发车时间=mydate')
    // 应该是这样的
      

  3.   

    adoquery1.SQL.Add('select * from 发车表 where 发车时间='+'{'+mydate+'}');
      

  4.   

    都不行呀!beyondtkl(大龙驹<逝追>) 提示数据类型不对,可我access里面是日期型的呀!
     liuqifeiyu(liuqi)的提示 mydate没有定义!难道没人知道吗???
      

  5.   

    应该是 (MyDate是字符型的吗?)
    Parameters.ParaByName('mydate').value := StrToDate(MyDate)
    再 Open
      

  6.   

    procedure TForm2.FormCreate(Sender: TObject);
    var
    mydate:tdate;
    我已经把它定义为日期型了呀!!!
      

  7.   

    adoquery1.SQL.Add('select * from 发车表 where 发车时间=:mydate');
    Parameters.ParaByName('mydate').value := datetostr(MyDate)
    再 Open
      

  8.   

    既然MYDATE是一个参数,那么就该给他赋值啊。
    Parameters.ParaByName('mydate').value := MyDate;
      

  9.   

    还是不行呀!我都要疯掉了,再按照thebest123(凌然)的做了,它显示找到的为空,而实际上里面有符合条件的呀!
      

  10.   

    你到底是要匹配日期还是匹配时间??MYDATE是日期还是时间?
      

  11.   

    匹配日期呀!
    var
    mydate:Tdate;
      

  12.   

    你先在ACESS中用SQL语句试试,看看有没有
      

  13.   

    把它改成字符型的
    adoquery1.SQL.Add('select * from 发车表 where 发车时间=str(mydat)
      

  14.   

    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[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.