sql.text:='select kno from nos where kname like ''%'+:epartname+'%'+'''';

解决方案 »

  1.   

    sql.text:='select kno from nos where kname like '+''''+'%'+:epartname+'%'+''''; 
      

  2.   

    改成这样:
    sql.text:='select kno from nos where kname like ''%:epartname%''';
      

  3.   

    可能这样才行:
    query1.sql.text:='select kno from nos where kname like :epartname';
    query1.ParamByName('epartname').Asstring := '%匹配的字符串%';
      

  4.   

    上面的都不成立,没有这种使用的方式:...like ''%:epartname%'''
    应该这样写:
      select kno from nos where kname like :epartname;
    然后:
      parambyname[epartname].vlaue:='%name%';
    给参数赋你想查找的条件字符串!
      

  5.   

    Sorry ,刚才写帖时没有刷新,没有看到geminii的回复!
    还写错了一句:
    最后一句应该为:
    params[0].value:='%name%'
      

  6.   

    谢谢各位!
    所提供的方法没有全部试过。
    但用如下方式成功:
    sql.text:='select kno from nos where kname like :epartname';
    parameters.parabyname('epartname').value:='%'+partname+'%';
      

  7.   

    to yangwang :
    那是因为你用的是Adoquery
    如果你用query的话,我的是可以通过的
      

  8.   

    其实在adoquery中可以这样:
    sql.text:='select kno from nos where kname like ''%''+:partname +''%''';
    parameters.parabyname('epartname').value:=partname;
    关键是:partname与+''%''之间一定要有一个空格
    这个方法我试过,没有问题。