informix的esql编译参数避免//注释引起的SQL中断问题

在EXEC SQL中,如果SQL语句出现了“//”符号,那么会导致后面一直到“;”结尾的SQL语句都被忽略,而不止当前行。这样往往会出乎程序员的意料。

专注于为中小企业提供做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鼓楼免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

例如以下例子程序t1.ec。


  • int main()
  • {
  •         EXEC SQL UPDATE vyktd
  •         SET kahaoo="1" //注释1出现在SQL中
  •         WHERE kahaoo= "2";
  •         //注释2出现在普通程序中
  •         return 0;
  • }
  • 正常编译可以通过:

    $esql -e t1.ec

    $

    其实执行的SQL将会是UPDATE vyktd SET kahaoo="1",不带任何条件。因为WHERE字句被注释1所掩盖,变成危险的全表更新!

    为了避免这样的隐患,需要加上esql的编译参数-keepccomment,加上这个以后,如果在sql里写了“//”就会编译报错。

    $esql -keepccomment -e t1.ec
    esqlc: "t1.ec", line 4: Error -33051: Syntax error on identifier or symbol '/'.
    1 error(s) found

    $


    当前名称:informix的esql编译参数避免//注释引起的SQL中断问题
    转载注明:http://bzwzjz.com/article/ispcjj.html

    其他资讯

    Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
    友情链接: LED网站设计方案 手机网站制作 泸州网站建设 成都定制网站建设 成都企业网站设计 高端品牌网站建设 企业网站建设 成都网站设计 网站建设公司 专业网站设计 成都品牌网站设计 成都网站建设 高端网站设计 成都网站设计 成都企业网站制作 成都网站建设 成都网站建设 手机网站建设 品牌网站建设 成都网站建设 自适应网站建设 营销网站建设