在delphi中
 动态给adoquery1.sql添加模糊查询语句怎样写:在SQL中写为
select *  from b where id like '%A%'  即将含有A的全部查询出来:注意:其中A的值是用户所输入的: edit1.text,id 是字符型的
 
在delphi中是下面这个吗:adoquery1.sql.add('select  * from b where id like ''%:p%''')
adoquery1.Parameters[0].Value:=trim(edit1.Text) 我试了一下不对啊?

解决方案 »

  1.   

    这样:adoquery1.sql.add('select  * from b where id like %'''trim(edit1.Text)'''%);
      

  2.   

    更正:
    adoquery1.sql.add('select  * from b where id like %'''+trim(edit1.Text)+'''%);
      

  3.   

    同意  snowwhitezxy(梦想)
      

  4.   

    没必要用动态生成SQL的方法,还是可以用参数:
    adoquery1.sql.add('select  * from b where id like :p');
    adoquery1.Parameters[0].Value:= '%' + trim(edit1.Text) + '%';
      

  5.   

    snowwhitezxy(梦想)还犯了一个错误:%是应该放到引号里面的。不过如果用参数的话就不用写引号了。
      

  6.   

    to : plainsong(伤心的风) 这样也不对啊   测试时出错啊 你们都测试一下啊
      

  7.   

    adoquery1.sql.add('select  * from b where id like %'+'trim(edit1.Text)'+'%');
      

  8.   

    应该是这样:
    adoquery1.sql.add('select  * from b where id like %'+'trim(edit1.Text)'+'%');
    对吧.
      

  9.   

    对不起!上面写错了,应该是这样:
    adoquery1.sql.add('select  * from b where id like %'+trim(edit1.Text)+'%');
    对吧.
      

  10.   

    adoquery1.sql.add('select  * from b where id like ''%'+trim(edit1.Text)+%''');
      

  11.   

    楼上的正确,我肯定了,我实验过的
    adoquery1.sql.clear;
    adoquery1.sql.add('select  * from b where id like''%'+trim(edit1.Text)+%''');
    adoquery1.open;
    接分~~~~~~~~~~~~~
      

  12.   

    给你具体解释啊~ like 后面要跟的字符串本来可以用 ' 来括起来的,但是它是在 ' 里面包含着,所以用 '',来表示 '
      

  13.   

    adoquery1.sql.clear;
    adoquery1.sql.add('select  * from b where id like ''%'+ edit1.Text +'%''');
    adoquery1.open;
    接分~~~~~~~~~~~~~
      

  14.   

    var
      SqlStr:String;
    begin
      SqlStr:='select *  from b where id like'+''''+'%'+Trim(Edit1.Text)+'%'+'''';
      adoquery1.Active:=False;//如果adoquery1是通过ADOConnection1来连接的,建议此句改 
                              //为ADOConnection1.Close;
      adoquery1.SQl.Clear;   
      adoquery1.sql.add(SqlStr);
      try
       adoquery1.Active:=True;
      except
       Showmessage('查询语句'+SqlStr+'错');
      end; 
    end;
      

  15.   

    更正SqlStr:='select *  from b where id like '+''''+'%'+Trim(Edit1.Text)+'%'+'''';
    like后有一个空格