'''+I_date+'''这里的单引号为什么三个
这样看就清晰了
''         '+I_date+'           ''也就是在字符串中 单引号要用 两个单引号表示
oracle中tochar 要求 用单引号表示字符串再 db中两者均可
要看数据库的要求

解决方案 »

  1.   

    这个转义的问题很好解决
    如果字符中需要-'-就用char(39)或者#39代替
    如sql.add('select    *    from    FS_FREIGHT_APLS_VW    
    where    CNM_DATE    =to_date('''+I_date+''',''yyyy.mm.dd'')');  ——〉
    sql.add('select    *    from    FS_FREIGHT_APLS_VW    
    where    CNM_DATE    =to_date('+#39+I_date+#39+','+#39+'yyyy.mm.dd'+#39+')');
      

  2.   

    有人说delphi中 ' 就是转义符,同意这种说法吗?
      

  3.   

    delphi中'是一个关键字。需要转义,一般来说用两个'代替一个。有些情况出现''''时第一和4个为关键字,中间两个就是转义了的。如果不好判断,用我上面说的方法比较好做一些
      

  4.   

    你搞不懂就这样用啊:
    sql.add('select    *    from    FS_FREIGHT_APLS_VW    
    where    CNM_DATE    ='+#39+to_dat('I_date','yyyy.mm.dd')+#39);  
    我以前也搞不蛮清楚!
    现在好了