select * from cmd where '''+var1+'''=var2
该语句在编译时通过但达不到目的
这是为什么呢?

解决方案 »

  1.   

    var 
      str:
    str:=+var1+;
    select * from cmd where str=var2
      

  2.   

    关键看你最后拼成什么样的sql语句传递给数据库的。
      

  3.   

    可以。
    在Delphi里面可以这么写:
    adoquery1.sql.text:=Format('select * from cmd where %s=''%s''',[val1,val2]);
    adoquery1.open;
      

  4.   

    adoquery1.sql.text:=Format('select * from cmd where '''+val1+'''='''+val2+''');
      

  5.   

    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;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~