ADOQuery1.Parameters.ParamByName('年度').DataType:=ftinteger;
出现错误说是:missing operator or semicolon
为什么?全部的代码为
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if edit1.Text='' then
  begin
    showmessage('请输入订单年度时间');
    edit1.SetFocus;
    end
  else
     if(trim(edit1.Text)<>'') then
     begin
       if ADOQuery1.Active then
        ADOQuery1.Active:=false;
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add('select * from 订单车信息');
        ADOQuery1.SQL.Add('where 年度= '+edit1.Text)
        ADOQuery1.Parameters.ParamByName('年度').DataType:=ftinteger;
        ADOQuery1.Parameters.ParamByName('年度').Value:=trim(edit1.Text);
        ADOQuery1.CursorType:=ctkeyset;
        ADOQuery1.LockType:=ltbatchoptimistic;
        ADOQuery1.Open;
        end;
end;

解决方案 »

  1.   

    你这个SQL语句也没有定义参数,所以你这个“年度”不是参数,把那两句删了。
      

  2.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      if trim(edit1.Text)='' then
      begin
        showmessage('请输入订单年度时间');
        edit1.SetFocus;
      end else
      with ADOQuery1 do
      begin  
        Close;
        SQL.Clear;
        SQL.Add('select * from 订单车信息');
        SQL.Add('where 年度='+Quotedstr(edit1.Text));(年度如果是文本类型,要加单引号)
        Open;
      end;
    end;
      

  3.   

    显示missing connection or connectionstring
      

  4.   

    打开ADOQuery1的connectionstring属性连接数据库
    选择自己对应的数据库连接方式 
      

  5.   


      ADOQuery1.SQL.Add('where 年度= '+edit1.Text)你看看这个语句吧
    有两个错误:
    1)DELPHI中的语句少了一个;号
    2)SQL语句少了一对''号呀
    完整的语句应该这样写  ADOQuery1.SQL.Add('where 年度= '+''''+edit1.Text+'''');
      

  6.   


      ADOQuery1.SQL.Add('select * from 订单车信息');
      ADOQuery1.SQL.Add('where 年度=:Y ')
      ADOQuery1.Parameters.ParamByName('Y').DataType:=ftinteger;
      ADOQuery1.Parameters.ParamByName('Y').Value:=strtoint(edit1.Text);
      

  7.   

    你这么写好像有点问题啊!  ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select * from 订单车信息');
      ADOQuery1.SQL.Add('where 年度= '+edit1.Text)
      ADOQuery1.Parameters.ParamByName('年度').DataType:=ftinteger;
      ADOQuery1.Parameters.ParamByName('年度').Value:=trim(edit1.Text);
      ADOQuery1.CursorType:=ctkeyset;
      ADOQuery1.LockType:=ltbatchoptimistic;
      ADOQuery1.Open;在语句中没有参数据何来参数输入呢?要不你将
    ADOQuery1.SQL.Add('where 年度= '+edit1.Text)改为:
    ADOQuery1.sql.add('where 看度=:ND');
    ADOQuery1.Parameters.ParamByName('ND').Value:=trim(edit1.Text);
    ADOQuery1.Open;
    这样应该可以了。