sqlStr := 'insert into JTB.dbo.Expert(ExpertID,ExpertName) values('''+frm_InExpert.ie_rediExpertID.Text+''','''+frm_InExpert.ie_rediName.Text+''')';
这是经高人指导的一句sql语句,小弟实在看的很不明白,例如:需要将两个字符串串联起来需要用'+'号,那么'''+frm_InExpert.ie_rediExpertID.Text+'''中的加号是不是起到了串联字符串的作用。另外这几个引号分别是什么作用,可否详细的告知小弟不胜感谢!!!!!!!!!

解决方案 »

  1.   

    两个单引号算一个单引号,比如说
    'select * from asdf where col1 ='''+val1+'''';
    代表的字符串就是select * from asdf where col1 ='val1';
    'select * from asdf where col1 ='''是一个部分,代表select * from asdf where col1 =',
    ''''是一个部分,代表',中间两个单引号算一个单引号。
      

  2.   

    Nirvanaxumm(狂背单词) : 还是有一点不明白,那三个引号又算作几个引号呢?
    ('select * from asdf where col1 ='''+val1+'''';
    代表的字符串就是'select * from asdf where col1 ='val1'';)是不是应当在他两边加上单引号才对呢?另外,是不是这局sql翻译到sql里面就成了'select * from asdf where col1 ='val1''样子???谢谢
      

  3.   

    sqlStr := 'insert into JTB.dbo.Expert(ExpertID,ExpertName) values('''+frm_InExpert.ie_rediExpertID.Text+''','''+frm_InExpert.ie_rediName.Text+''')';sqlStr:='insert into JTB.dbo.Expert(ExpertID,ExpertName) values'+
      format('(''%s'',''%s'')',[frm_InExpert.ie_rediExpertID.Text,frm_InExpert.ie_rediName.Text]);这样看会不会清楚点,用format格式化字符串比较容易看。
    字符串在Sql中要用单引号括起来的。在delphi中,两个单引号表示字符串中的单引号,明白吗?
    上面的效果就是这样的:
    (设frm_InExpert.ie_rediExpertID.Text:='ExpertID'
        frm_InExpert.ie_rediName.Text:='ExpertName')insert into JTB.dbo.Expert(ExpertID,ExpertName) values
    ('ExpertID','ExpertName')
      

  4.   

    不是,是一个字符串select * from asdf where col1 ='val1'