Chinaunix

标题: 求助:informix的使用不熟悉,还真麻烦 [打印本页]

作者: zzzsssyyy    时间: 2007-02-05 12:47
标题: 求助:informix的使用不熟悉,还真麻烦
我在用pb编程,现在遇上如下问题,需要各位热心人帮助:
我希望用一个字符串提交到informix用来批量执行,例如:
"delete from ... where .... ;  insert into ... select ... from ... ;  update ... set ... ; "
一次提交,必须全部成功。
现在遇到的问题是,为了确保数据的完整,某些满足条件的数据必须先删除,然后再insert 或 update,如果没有满足条件的数据当然没有删除的行数,但是必须继续执行后面的insert或update操作,但是现在的情况是如果没有删除的影响行,则后面的sql一律不执行,我如何能够让它继续执行呢?
作者: liaosnet    时间: 2007-02-05 15:24
用事务。。
作者: zzzsssyyy    时间: 2007-02-05 15:49
肯定是在一个事务中,忘了写"begin work;", 'commit work;"
作者: liaosnet    时间: 2007-02-05 16:02
那就行啊。。用事务只要同一事务中的一个出现问题就rollback。
作者: 大梦    时间: 2007-02-05 16:05
若数据量太大,得注意长事务呀!
作者: wenlq    时间: 2007-02-05 16:45
用存储过程
作者: zzzsssyyy    时间: 2007-02-06 13:54
不想用存储过程,因为是在pb中拼串,参数有许多,不可能用存储过程,况且代码和存储过程分家,不便于维护,问题是如果删除的影响行为0,或者回滚,那么它前面的语句也应该回滚(虽然这不是我需要的),但是却提交了,或者继续向下执行才是,实际情况是前面的语句执行了,删除影响行不为0,才执行下面的语句,如果为0,则后面的都不执行,而且提交了,保证不了数据的一致性




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2