免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1440 | 回复: 6
打印 上一主题 下一主题

特急:cli程序有时无法rollback [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-29 21:44 |只看该作者 |倒序浏览
各位大虾,请指教:

  我有一服务端的帐务处理程序,用CLI编写,事务处理方式,大概如下:

      ret1=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
      ret2=Sqlsetconnectoption   (hdbc_db1,
                       SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
      
        ret = 0;
        ret = insert_table1(hstmt_db1,...);
        if ( !ret )
            ret = update_table2(hstmt_db1,...);
      
       if (ret)
      {
         ret3=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_ROLLBACK);
         ret4=Sqlsetconnectoption   (hdbc_db1,
                       SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
       }
       else
       {
         ret5=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
         ret6=Sqlsetconnectoption   (hdbc_db1,
                       SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
       }
      
     其中ROLLBACK时大部分时间没有问题,但是偶尔ret3返回-1,
导致数据不一致,严重影响帐务。

======
烦恼的人!
======
wupeng 该用户已被删除
2 [报告]
发表于 2004-06-30 23:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2004-07-01 10:30 |只看该作者

特急:cli程序有时无法rollback

谢谢回复!

大部分是,但有时update也不能rollbak.
是不是CLI函数有BUG?
wupeng 该用户已被删除
4 [报告]
发表于 2004-07-01 15:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2004-07-01 16:56 |只看该作者

特急:cli程序有时无法rollback

好像是ret4吧。

因为那些cli函数被公司封装为公共函数,不敢动。

你碰到过SQLTransact函数rollback失败的吗?

DB2好像有这方面的补丁程序,不知Informix有没有?
wupeng 该用户已被删除
6 [报告]
发表于 2004-07-01 17:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2004-07-02 22:01 |只看该作者

特急:cli程序有时无法rollback

老大,CLI中好像没有BEGIN WORK之类的,我只在SPL和dbaccess中用过。上面的那些就是用来模拟他们的功能,公司已经将其封装成begin_tran的格式,提供事务处理的功能。
我主要是想了解SQLTransact函数何时会rollback不成功?当然
如果之前调用SQLDisconnect肯定会出错,但我的程序只是在
退出前才会使用这些来清理,其它地方无法找到连接句炳被K掉的
语句。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP