为什么我通过断点获取SQL语句在查询分析器可以运行,在编译的程序里一直提示SQL语句错误呢?代码如下,请高手解释下str1:='INSERT INTO ws_WorkProcedure '
        +'SELECT DISTINCT '
        +'WorkBillNO, '
        +'WorkProcedureName = CASE WHEN WorkProcedureName = ''样箱'' THEN ''裱胶'' '
        +'WHEN WorkProcedureName=''电脑'' THEN ''裱胶'' '
        +'WHEN WorkProcedureName = ''喷墨稿'' THEN ''裱胶'' END, '
        +'PlanNum, PlanArea, BillDate, BillUser, FactNum, FactDate, FactArea, '
        +'ScrapNum, Reason, CheckUser, CheckDate, CheckReason, Res, '
        +'Flag, Fclass  '
        +'FROM ws_WorkProcedure  '
        +'WHERE WorkProcedureName IN (''样箱'', ''电脑'', ''喷墨稿'') ' ;openSql(adoQuery_temp,quotedstr(str1));

解决方案 »

  1.   

    如果错误提示贴出来最好,
    已经发现一个错误:
    case when 嵌套不对
    1、case when a=b then a else (case when b=c then b else c end) end2、case a when 'b' then x1
              when 'c' then x2
              when 'd' then x3lz的格式显然不对
      

  2.   

    谢谢楼上各位已经找到错误了
    openSql(adoQuery_temp,quotedstr(str1));改为
    ExecSql(adoQuery_temp,str1);就可以了