UPDATE busi_cur_order_detail
SET group_no = :ls_group_no_target,
order_no = :ls_order_no_target,
old_order_no = :is_order_no_old,
trans_oper = :gs_oper_name,
trans_time = getdate(),
is_own = '0'
WHERE ( order_no = :is_order_no_old ) using sqlca;
if sqlca.sqlcode = 0 then
/*新增开始*/
DELETE from busi_cur_order_detail where ( order_no = :is_order_no_old ) using sqlca;
if sqlca.sqlcode = 0 then
/*新增结束*/
if iuo_func.uf_count_order_sn(is_order_no_old) = false then return
if iuo_func.uf_count_order_sn(ls_order_no_target) = false then return
commit using sqlca;
mess("操作成功。")
close(parent)
return
/*新增开始*/
else
rollback using sqlca;
mess("操作出错")
return
end if
/*新增结束*/
else
rollback using sqlca;
mess("操作出错")
return
end if
以上是程序代码,执行的操作时把订单明细表(busi_cur_order_detail)里的旧订单号明细(is_order_no_old)用新订单号明细(ls_order_no_target)替换掉
设计到的数据表有两张,一张是订单表-主表(busi_cur_order),另一张是订单明细表-子表(busi_cur_order_detail),子表引用主表的order_no字段。
但是程序执行时总是有一条数据删不掉,是哪里的问题?
代码里新增的地方,是我在UPDATE不行的情况下又通过DELETE方式处理的,但是还是删不掉。
------解决方案--------------------
这二个retrun 之前的update和delete 可能没有及时得到提交。
------解决方案--------------------
- C# code
DELETE from busi_cur_order_detail where ( order_no = :is_order_no_old ) commit using sqlca;