关于PB调用写有事务开始的存储过程出错的原因
来源:互联网 发布:在淘宝买衣服注意什么 编辑:程序博客网 时间:2024/06/05 03:13
在PB6.5的开发中遇到这样的问题:PB需要调用一个存储过程,这个存储过程中需要用到事务,所以在存储过程中就是用begin work开始事务,在后台调试,运行成功。
然后在PB中 declare游标,execute游标,返回结果出错,错误号是-535(Already in transaction)。而且现象很奇怪,第一次运行的时候报错,在画面不关闭的情况下运行第二次就不会报错。
导致这个现象的原因就在于PB中事务的自动属性设置。
事务的属性:
autocommit:定义应用程序是如何提交事务 该属性是为支持自动提交的数据库管理系统提供的,其有效取值为TRUE——PowerBuider 自动提交每一条SQL语句,如果SQL语句执行成功 ,数据库管理系统立即更新数据库,就像SQL语句后面紧接着执行了COMMIT 提交语句一样,FALSE——程序通过提交语句COMMIT 提交事务,PowerBuider 在与数据库建立连接之后开始一个事务,在执行COMMIT或ROLLBACK 语句后结束前一事务并开始下一个事务,FALSE是该属性的默认设置值。
因为PB中事务的自动属性默认设置是false,所以我们在建立游标的时候,其实就已经开始了一个事务。当我们在存储过程中是用begin work 开始事务的时候就提示错误。但是第二次执行的时候,因为我们在存储过程中结束掉了事务,并不是在PB中结束掉的,所以也就不会开始下一个事务了。
所以我们在调用需要在事务中处理的存储过程的时候不用开始事务,但是最好在执行存储过程之前先commit一次。防止之前的数据丢失。
- 关于PB调用写有事务开始的存储过程出错的原因
- 在事务中调用N个存储过程,但这些存储过程都是有写事务的
- 关于在PB中动态调用ORACLE的存储过程
- PB调用存储过程的声明方法
- 关于ACCESS2007的事务与存储过程的调用
- 关于PB和存储过程的问题
- 开始写博客是有原因的
- 利用dblink调用远端DB的存储过程出错的原因
- JDBC调用存储过程,以及存储过程 事务的使用.....
- PB调用Oracle 存储过程的样列
- PB调用带返回值的存储过程
- 关于存储过程的调用
- 别人写的Hibernate 调用存储过程
- 关于调用存储过程-事务使用
- pb调用SHFileOperation出错的问题
- 调用有返回参数的存储过程
- oracle 父存储过程调用子过程的事务问题
- oracle 父存储过程调用子过程的事务问题
- JAVA算法字符串统计
- 写现在女孩的要求
- Solaris重启bfagent服务
- PDF在线编辑器的实现
- js中innerHTML,innerText,outerHTML的用法与区别
- 关于PB调用写有事务开始的存储过程出错的原因
- CMake实践1
- RT-Thread Radio 网络播放器--初次零距离接触!
- intent-filter 之 data
- LD_LIBRARY_PATH与LIBPATH
- 如何实现开机启动
- HTML5 组件Canvas实现图像灰度化
- android中访问和解析xml文件
- CMake实践2