同一个应用程序,运行一个短的SQL语句时则能通过,但是当运行一个很长的SQL语句时则提示出错,错误提示  EOleException with message '多步操作产生错误。请检查每一步的状态值。'该长的SQL语句经测试是可以使用的。

解决方案 »

  1.   

    楼主是不是在一个sql里同时执行了修改和查询操作;
    我也试过;譬如先执行insert;然后select;就会出现楼主这样的情况;

    目前我好像只能将操作分开执行;还是不知道为什么那种;^_^;很郁闷;也很无奈的;
    那个高手能说说为什么、?
      

  2.   

    操作access 的语句有时候对sql 严谨性要求不高 但是操作sql 数据库有比较高的严谨性要求我觉得还是你的sql 有问题
      

  3.   

    我操作的是查询oracle数据库,用的是adoquery控件。具体的SQL语句如下:
    SELECT
    da.dh,
    d.jc,
    count(*),
    sum(nvl(hf.wwf,0)),
    sum(nvl(hf.yzf,0)+ 
      nvl(hf.tyzf,0)+nvl(hf.tyzf1,0)+nvl(hf.tyzf2,0)+nvl(hf.tyzf3,0)+nvl(hf.tyzf4,0)+
      nvl(hf.tyzf5,0)+nvl(hf.tyzf6,0)+nvl(hf.tyzf7,0)+nvl(hf.tyzf8,0)+nvl(hf.tyzf9,0)),
    sum(nvl(hf.ydf,0)+nvl(hf.ydf1,0)+nvl(hf.ydf2,0)),
    sum(nvl(hf.gnct,0)+nvl(hf.gncf,0)+nvl(hf.gnjn,0)),
    sum(nvl(hf.gjct,0)+nvl(hf.gjcf,0)),
    sum(nvl(hf.nmyd,0)+nvl(hf.wmyd,0)),
    sum(nvl(hf.nmgn,0)+nvl(hf.nmgj,0)+nvl(hf.wmgn,0)+nvl(hf.wmgj,0)),
    sum(nvl(hf.gmyd,0)),
    sum(nvl(hf.gmgn,0)+nvl(hf.gmgj,0)),
    sum(nvl(hf.zhfj0,0)+nvl(hf.fqfk,0)+nvl(hf.bxf,0)+nvl(hf.qt,0)+nvl(hf.zhfj1,0)+nvl(hf.qt1,0)),
    sum(nvl(hf.xxf,0)+nvl(hf.qt2,0)+nvl(hf.bss,0)+nvl(hf.jbs,0)+nvl(hf.znj,0)),
    sum(nvl(hf.jms,0)+nvl(hf.jms1,0)+nvl(hf.jms2,0)+nvl(hf.jms3,0))
    FROM thh_hfzd hf,tyt_yhda da,tbm_dh d
    WHERE hf.yhbh=da.yhbh and da.dh=d.dm
      and hf.ny=200312
      and da.dh not in ('0019','PPS0')
    group by da.dh,d.jc
    order by da.dh
      

  4.   

    顺便补充一点,就是以上的SQL语句出来的结果很多,不知道会不会超过默认的缓冲大小。
      

  5.   

    在一个网站上看到的操作说明:
    如果在提交过程中返回如下错误信息:1、多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。问题解决的具体操作如下:从错误页面按后退,然后在出现的页面中按“修改”按钮,这样就退回到了最初填写信息的页面,此时您可以检查您的填写内容中是否有业务课名称是否过长问题,特别是有括号注释的,可将括号部分删除,然后再次提交。
      

  6.   

    建议:用"多步操作产生错误"做关键字到Google中搜索,或许有所帮助。
      

  7.   

    楼主操作的sql语句好熟悉,应该是联通的boss系统.其实问一下厂家就知道了.
      

  8.   

    试一下将他分成几段:
    如:Adoquery1.sql.add('select * From Table ');
    Adoquery1.sql.add('Where a,,b,c,d ');
    Adoquery1.sql.add(',d,e,g,h,j');这样试试看
      

  9.   

    对于上述SQL语句,当使用ADOCommand控件,如果是不要返回值直接执行adocommand.execute时是可以执行的,但是一旦让它有返回值时dataset.Recordset:=adocommand.execute则提示同样错误,请教各位高手。
      

  10.   

    超级大的SUM数据结果和不正确的相加值sum("XXX"+1)会导致同样的错误