运行系统上,同样的数据和程序,执行后判断sqlca.sqlcode=0,commit;日志提示成功,但是查数据库没有。对同样的数据程序多执行几次,偶尔会有成功的换到开发环境,同样的数据和程序就能每次成功各位有没有遇到这种情况啊,搞得很郁闷

解决方案 »

  1.   

    网络没问题,不止这个项目在跑。很不明白的是sqlcode已经返回0了,也commit没有进入sqlerror,为什么数据库没有数据?oracle的问题吗?是proc写的程序
      

  2.   

    建议打印一下 insert 语句执行后所影响的记录数。
    printf ("insert 的记录数量:%d",sqlca.sqlerrd[2]);
      

  3.   

    sqlcode=0后,以后的语句执行正确吗
      

  4.   

    会不会是在某个地方被rollback了
      

  5.   

    查看你的会话的配置信息
     我认为你的会话可能是自动提交给false
      

  6.   

    感谢大家关注,近期有了新发现。
    程序接收数据后循环处理,insert数据表后会接着insert log表,程序分成的两个事务提交。也就是insert数据表成功了就commit一下,最近从日志发现入log时出现了错误,这样就会rollback,然后接着处理下一条,是不是如果多个进程就会相互影响事务,导致insert数据表出现及时返回0,也没有入库的情况?