利用变量代替数据表中的某个字段进行模糊查询:
var1:=ComboBox1.Text;
var2:=Edit1.Text;
SQL.Text:=format('select * from 商品信息 where %s like %''%s''%',[var1,var2]);
该语句编译通过但执行时出现异常
有人认为可以这样:
ADOQuery1.Parameters.Items[]:=%var2%;
或者
ADOQuery1.SQL.Text:='select * from 商品信息 WHERE var1 LIKE :var2';
但是这样的方案都解决不了问题
请问哪位高手能够指点啊?

解决方案 »

  1.   

    ADOQuery1.SQL.Text:='select * from 商品信息 WHERE var1 LIKE :var2';这个可能不得哦!
    不知道这样可以不!
    ADOQuery1.SQL.Text:='select * from 商品信息 WHERE ''var1'' LIKE '%''+var2+'''';
      

  2.   

    var1:=ComboBox1.Text;
    var2:=Edit1.Text;ADOQuery1.SQL.Text:='select * from 商品信息'+
    ' WHERE '+''''+var1+''''+' LIKE '+''''+var2+'''';
      

  3.   

    procedure TForm2.Button4Click(Sender: TObject);
    var
      t:string;//T为字段变量,即按什么字段来查询
    begin
      case ComboBox2.ItemIndex of
        0:t:='khdm';
        1:t:='khxm';
        2:t:='lxfs';
        3:t:='dwdz';
        4:t:='cpx';
        5:t:='zjbh';
        6:t:='jxpz';
        7:t:='bz'
      end;//end case
      with dm.ADOQuery1 do begin
        Close;
        sql.Clear;
        sql.Add('select * from khxxtb where '+t+' like ''%'+Trim(edit7.Text)+'%''');
        Open;
      end;//end with
    end;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~