谢谢大家了!

解决方案 »

  1.   

    sql.text:='select * from storm where id='''+edit1.text+'''';
      

  2.   

    原因:单引号中的连续两个单引号是一个单引号。ShowMessage(''''); 结果是一个单引号。
    ShowMessage('''); 错误。
      

  3.   

    那 sql.text:='select * from storm where id='''+edit1.text+'''';中的三个'''又怎么说呢?
      

  4.   

    1段:'select * from storm where id='
    2段:''
    3段:edit1.text
    4段:''''(注意:4个''''是一个单引号)4个段加起来就是SQL语句了
      

  5.   

    不是吧?
    'select * from storm where id='''+edit1.text+'''';是一个
    '''+edit1.text+''''是一个
    两个''各是一个
    ''是表示为空的字符串。这是我的理解。
      

  6.   

    id=''这里是一个左'
    select * from storm where id=''外面套的一对是说明这是一个字符传川
    最后的''''是一个右'
      

  7.   

    话没说完,左'右'中间套的edit1.text的值,edit1.text本身是字符串类型
    也就是说原来的sql语句是 select * from storm where id='XXX' 
    XXX是edit1.text,左边的'是id=''这两个'构成的
    XXX右边的'是''''构成的
      

  8.   

    在一对引号中间,
    想要表示另一个引号作为内容,
    必须用连续的两个引号来代替。
    所以,连续的4个引号,头尾两个正常,
    中间的表示一个引号,
    一个引号和文字后的3个引号,
    同样道理,首尾是正常,
    在中间的2个表示一个内容中的引号,
    例:select * from storm where id =+"" + edit1.text + "",
    如果 edit1.text =’abc'
    则形成了:select * from storm where id ='abc'  
      

  9.   

    先把SQL语句写下来,再记住在DELPHI的字符串里面,两个单引号就等于是一个单引号(前面一个只是说明后面这个引号是字符串里面的)说不明白,自己想想吧。'select * from storm where id =''' + edit1.text + '''';前面三个之中,前两个是说明字符串里有一个引号。第三个是和select前面一个相对应的。
    后面四个之中,中间两个也是代表字符串里的一个引号。旁边两个则是把这个引号引起来。
    所以,如果Edit1.text='0001',这个字符串就是: select * from storm where id ='0001'
      

  10.   

    我一般是用 #39  来代表单引号这看起来比较清楚sSQL:='select * from storm where id ='+#39+ + edit1.text + #39;
      

  11.   

    因為select 前面有'阿,必須成雙才對阿
      

  12.   

    要加引号时用quotesstr(EDIT1.TEXT)好些,好读.
      

  13.   

    在VB中是:
    text='select * from storm id='"+edit1.text+"'
    1)第一步:"+eidt1.text+"把变量的值取出来<book>。
    2)第二步:把取出的字符串左右加上单引号<'book'>
    ///------------------------------------------
    而在delphi中两个单引号<''>就是一个空字符串
    text:='select * from strom id='''+edit1.text+'''';
    1)第一步:''+edit1.text+''把变量的值取出来<book>
    2)第二步:把取出的字符串加上单引号<'book'>
      

  14.   

    忘记写一个where不然成什么了。呵呵
      

  15.   

    to  artoksxb(心情随风)
              好像不对把?楼主问的是为什么是四个单引号阿!!!
      

  16.   

    wegotnothingtolosebu(t this wonderful life if you can find it!) 讲得比较好
    d0347(旭日升)好
    还有其他的好,还有其他的方法能够让我们这些初学者学习吗
      

  17.   

    最好是写好SQL语句后在execsql或open之前先showmessage()一下,看看SQL语句有没有错误
      

  18.   

    這樣就行呀
    select * from storm where id = +quotedstr(edit1.text )
      

  19.   

    那个句子实际上是'select * from storm where id=“'+edit1.text+'”';这样就看清了吧!在SQL时原双引号可以写成‘’的,也就是两个单引号,我为了看着方便就写成全角了
      

  20.   

    个这个不怎么理解,select * from storm where id =+"" + edit1.text + "",这里为什么加两个四个""呢,请大家解不是",是'
    adoquery1.sql.text:='select * from storm where id  ='+edit1.text
    adoquery1.sql.text:='select * from storm where str ='''+edit1.text+''''
    adoquery1.sql.text:=?select * from storm where str =**?+edit1.text+!##!
    呵呵,弄的有点象IQ题
      

  21.   

    我在SQL和ACCESS中都是这样用的,不会错,因为他们会把“转换为两个单引号