在SQL 查询分析器里一条语句:
select *from bj where bh like '%01%'
bj是班级,bh是班号。在DELPHI里使用ADOQUERY,实现这个查询:
ADOQuery1.SQL.Text:='select *from '+'bj'+' where '+'bh'+' like '''+'%01%'+'''';中间那么多引号是怎么解释的?特别是最后4个,3个不就够了吗?
'''+'%01%'+''' 里 '+'%01%'+'表示一个字符串,需要用一对双引号括起来?谁能详细解释下这些引号的作用?

解决方案 »

  1.   

    ADOQuery1.SQL.Text:='select * from bj where bh like ''%01%''';
    就可以了delphi中字符串拼接时:两个''单引号代表一个'引号,你可以试试这个看效果Showmessage('''');
      

  2.   

    'select * from bj where '+' bh like '''+'%'+Edit1.Text +'%'+'''';
    拿这句说吧。。上面的写的有点多余。
      

  3.   

    就是说like后面紧接的两个单引号'',表示的是单引号'的意思?最后一个+号后面4个引号的中间两个其实也是单引号'的意思?
      

  4.   

    对,你可以用Showmessage('select * from bj where '+' bh like '''+'%'+Edit1.Text +'%'+'''');
    出来看看
      

  5.   

    ADOQuery1.SQL.Text:='select * from bj where bh like ''%'+Edit1.Text+'%''';这样就可以了
      

  6.   

    如果你Edit1.Text内容有单引号,也会出错的,改成这样adoquery.sql.text:='select * from bj where bh like '+quotedstr('%'+Edit1.Text+'%');