zoukankan      html  css  js  c++  java
  • PRO*C结果集

    PRO*C结果循环
    如果不提交,服务完成不会自动提交,数据库再有stock行更新会陷入持续等待,只能杀掉AS才可以,无报错。
    PRO*C 中间提交会报错的,
    最后统一提交不会报错,即使中间有更新表的部分主键,或者是全部主键,包括查询结果集中使用的主键元素。


    换做过程

    PRO*的结果游标是先fetch到缓存的
      [PRO*C结果集语句][select exchange_type, branch_no, stock_account, stock_code from stock where stock_account = 'A001854006']                
      {                
        [PRO*C记录获取开始][@exchange_type, @branch_no, @stock_account, @stock_code]                
                    
          [PRO*C语句][update stock set stock_account = '22222' where stock_account = @stock_account]                
          [PRO*C语句][insert into entrust(stock_account, stock_code) values(@stock_account, @stock_code)]                
        [PRO*C记录获取结束][@exchange_type, @branch_no, @stock_account, @stock_code]                
                    
      }                
      else                
      {                
        @error_no = SQLCODE;  //20080722 shirui add                                                                                                                                                                                                                                                
        sprintf(@hint_info,"[%d]%.200s", @error_no, "select exchange_type, branch_no, stock_account, stock_code from stock where stock_holder = 'A1854004'");                
        [PRO*C结果集函数报错返回][329999][SQL语句执行错误][@hint_info]                                                                                                                                                                                                 
      }                
      [PRO*C事务提交]                

    比如这种,先更新了,stock_accout,但是插入的 entrust表中的都是 A1854006,这样就会导致数据不一致了,所以才建议不要这样写吧。


  • 相关阅读:
    【数据库开发】数据库连接池及其工作原理
    【数据库开发】在Windows上利用C++开发MySQL的初步
    【数据库开发】is not allowed to connect to this MySQL server解决办法
    【数据库开发】 C连接mysql——常用的函数
    【数据库开发】在Windows上和Linux上配置MySQL的过程
    【数据库开发】在Windows上和Linux上配置MySQL的过程
    【数据库开发】MySQL命令大全
    【数据库开发】MySQL命令大全
    【数据库开发】MySQL修改root密码
    【数据库开发】MySQL修改root密码
  • 原文地址:https://www.cnblogs.com/tigertall/p/2255320.html
Copyright © 2011-2022 走看看