不知道是不是字符串的问题,delphi中的字符串要这样用:''''!

解决方案 »

  1.   

    'select * from A where id in (select id from B where bname like '+''''+'*'+edit1.text+'*'+''''+')'好像是这样写的
      

  2.   

    'select * from A where aid in (select id from B where bname ...
                           ---- 
    应是a.id吧。
      

  3.   

    最保险放心规范的方法:
    query.close;
    query.sql.clear;
    query.sql.add('select * from A where aid in (select id from B where bname like :temp )');
    query.parambyname('temp').asstring:='%'+trim(edit1.text)+'%';
    query.open;
      

  4.   

    'select * from A where id in (select id from B where bname like '+''''+'%'+edit1.text+'%'+''''+')'
      

  5.   

    你的ID是什么类型的?如果是char型,则如上面各位所说!
      

  6.   

    'select * from A where aid in (select id from B where bname like '''+'%'+edit1.text+'%'+'''')'点的太少了!
      

  7.   

    'select * from A where id in (slect id form B where bname like '+''''
    +'%'+edit1.text+'%'+''''+')'
      

  8.   

    同意cqiu2000(算死草) 
    像这样的问题 应该尽量使用parambyname
    代码规范一些 而且不容易出错
      

  9.   

    尽量使用parambyname 或PARAMS[0].ASTRING
    这样不太容易出错
    还有在SQL引用DELPHI要用SQL.ADD('SELECT * FROM TABLE WHERE TABLE_INFOR= '+''''+'%'+EDIT1.TEXT+'%'+'''')
      

  10.   

    是这个样子吧
    query1.close;
    query1.sql.clear;
    query1.sql.add(''SELECT * FROM TABLE WHERE TABLE_INFOR like :m');
    query1.parambyname('m').asstring:='%'+edit1.text+'%';
    try
    query1.open;
    except
    query1.execsql;
    end;