我通过dbedit来输入日期,蒋其传递给query1.sql
但是不行,它报参数类型不符,好像query1.sql只能接收字符参数,
不能接收日期参数,如果要传递日期参数,怎么做???
程序如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.SQL.Clear;
query1.SQL.Add('select trdate,b,c from wuri.db);
query1.sql.Add('where trdate<=:q1');
query1.ParamByName('q1')=dbedit1.text;
query1.Open;
end;

解决方案 »

  1.   

    query1.ParamByName('q1').AsDateTIme := StrToDateTime(dbedit1.text)
      

  2.   

    data型的数据与string型的数据当然不能划等号。
      

  3.   

    把dbedit1.text转换成日期类型的数据
    既然你显示的是日期类型的数据的 你可以用DBdatetime控件来实现的 你可以下载一个试试的
      

  4.   

    先转成字符串procedure TForm1.Button1Click(Sender: TObject);
    begin
    query1.SQL.Clear;
    query1.SQL.Add('select trdate,b,c from wuri.db);
    query1.sql.Add('where trdate<=:q1');
    query1.ParamByName('q1').AsString=FormatDateTime('yyyy-mm-dd',dbedit1.text);
    query1.Open;
    end;
      

  5.   

    query1.sql.Add('where trdate<=:q1');
    其中trdate是日期型字段;
    query1.ParamByName('q1').AsDateTIme := StrToDateTime(dbedit1.text);
    上面的方法看是正确的,但是在运行时通不过,提示为'operation no application'
    不知是什么原因?我用的是paradox表下面的是报类型错误
    query1.ParamByName('q1').AsString=FormatDateTime('yyyy-mm-dd',dbedit1.text);
    请各位高手再指点一下