出错显示: parameter 'var1' not found with ADOQuery1 do
       begin
        Close;
        SQL.Clear;
        SQL.Add('Select'+' '+Selectstr);
        SQL.Add('From name');
        end;
    if Valuestr='' then
    ShowMessage('请输入查询值')
    else
    begin
         if AutoFind.Checked=True then
        ADOQuery1.SQL.Add('where '+Itemstr+' like''%'+':var1' +'%''')
        else
        ADOQuery1.SQL.Add('where '+Itemstr+'=:var1');
        ADOQuery1.Parameters.ParamByName('var1').Value:=Valuestr;
          try
          ADOQuery1.Open;
          except
          ADOQuery1.ExecSQL;
          end;
     end;

解决方案 »

  1.   

    SQL.Add('Select'+' '+Selectstr);
      

  2.   

    ADOQuery1.SQL.Add('where '+Itemstr+' like''%'+':var1' +'%''')
      

  3.   

    ADOQuery1.SQL.Add('where '+Itemstr+' like''%'+':var1' +'%''')
    怎么这么乱阿
    ADOQuery1.SQL.Add('where '+Itemstr+' like :var1') 注意空格like空格
    ADOQuery1.Parameters.ParamByName('var1').Value:='%'+Valuestr+'%';
      

  4.   

    like 只能采用如下的方式:where name_id like :ss ,
    所以应该修改如下:
      ...前边略
      if AutoFind.Checked=True then
      begin
        adoquery1.sql.add('where '+Itemstr+' like :var1');
        adoquery1.parameters.parambyname('var1').value:='%'+Valuestr+'%';
      end
      else
      begin
        adoquery1.sql.add('where '+itemstr+'=:var1');
        adoquery1.parameters.parambyname('var1').value:=Valuestr;
      end;
      adoquery1.Open;
      

  5.   

    个人认为,
    你在前面加上:
      self.ADOQuery1.Parameters.AddParameter.Name :='var1';试试;
      

  6.   

    ADOQuery1.SQL.Add('where '+Itemstr+' like :var1') 
    ADOQuery1.Parameters.ParamByName('var1').Value:='%'+Valuestr+'%';