UpdateBlob 会自动提交?

jxc 2003-07-06 02:51:22
以下为PB代码:
=============================================
INSERT INTO T1(C1) VALUES('1');

MessageBox('BeforeUpdate',Itrans_source.AutoCommit)
// 显示为: False
// 从 SQLPLUSW 查看T1表,没有数据

UPDATEBLOB TR_TRANS_BACKUP
SET transdata = :Lbb_data
WHERE trans_id = :Is_TransID
USING Itrans_source;

MessageBox('AfterUpdate',Itrans_source.AutoCommit)
// 从 SQLPLUSW 查看T1表,已经插入了 1,此时并没有执行 commit
...全文
136 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxc 2003-07-06
  • 打赏
  • 举报
回复
我的程序就在上边, 请指点那里出错了?
如有不信,各位试一下吧.
lihuihit 2003-07-06
  • 打赏
  • 举报
回复


SQL直接操作

需要提交么?
Thinkinger 2003-07-06
  • 打赏
  • 举报
回复
我看了一下资料,blob变量的updateblob是可以事务控制的,问题应该是出在你的程序里!
jxc 2003-07-06
  • 打赏
  • 举报
回复
可能数据库把 UpdateBlob 当作 DDL 语言了,就像建表语句一样,是不受 autocommit 的控制的.
jxc 2003-07-06
  • 打赏
  • 举报
回复
的确保存了.
Thinkinger 2003-07-06
  • 打赏
  • 举报
回复
你在更新一个非空的blob后,用rollback回滚一下,看数据有没有最终的保存呢?
jxc 2003-07-06
  • 打赏
  • 举报
回复
请你来测试
1. 在SQLPLUSW中建立表:
====================================
create table t1(c1 varchar2(1),c2 blob);

2. 在PB中
====================================
insert into t1(c1) values('1');
messagebox('insert',SQLCA.autocommit)
// 在sqlplusw 中select count(*) from t1; -> 0

update t1 set c1 = '2' using Itrans_dest;
messagebox('update',SQLCA.autocommit)
// 在sqlplusw 中select count(*) from t1; -> 0

blob lblb_data
lblb_data = blob('asdfasd')
updateblob t1 set c2 = :lblb_data using Itrans_dest;
messagebox('updateblob',SQLCA.autocommit)
// 在sqlplusw 中select count(*) from t1; -> 1



3 注意
=================================
如果 blob 变量为空,则不会自动提交

Thinkinger 2003-07-06
  • 打赏
  • 举报
回复
如果你此时的autocommit = false的话就不应该出现这种结果,再检查一下你的代码!
jxc 2003-07-06
  • 打赏
  • 举报
回复
我是说,在执行完UpdateBlob后,已经隐含执行了commit,再rollback也不行了.
我用的是 Oracle 815
klbt 2003-07-06
  • 打赏
  • 举报
回复
同意楼上,updateblob后允许事务回滚。
Thinkinger 2003-07-06
  • 打赏
  • 举报
回复
这可能跟数据库的事务不同处理机制有关,这样的结果并不影响你对事务最终操作的结果,如果你在updateblob后rollback的话,事务回滚的操作应该是成功的,你可以试试!
Thinkinger 2003-07-06
  • 打赏
  • 举报
回复
你想问的是:为什么没commit也有数据,insert,update有什么不同吗?

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧