IF rtncode = 1 THEN
rtncode = dw_2.Update(TRUE, FALSE)
IF rtncode = 1 THEN
dw_1.ResetUpdate()
dw_2.ResetUpdate()
COMMIT USING sqlcasw;
ELSE
ROLLBACK USING sqlcasw;
END IF
END IF
我测试了一下,没问题。
3、如果递交不成功,可以看看sqlca.sqlerrtext返回值。
我做了一些主从表的窗口,也没遇到楼主说的情况啊。只用了
if dw_1.update() = 1 and dw_2.update() = 1 then
commit;
else
rollback;
end if
只要提交一次就没有问题。就如楼主所说其中一个窗口有了问题,commit肯定没有执行。怎么会修改后原来没问题的反而不能进数据库呢?
lret=dw_1.update(true,false)
if lret=1 then
lret=dw_2.update(true,false)
if lret=1 then
COMMIT USING sqlca;
sqlca.autocommit=true
dw_1.resetupdate( )
dw_2.resetupdate( )
messagebox('提示','存盘成功')
else
ROLLBACK USING sqlca;
sqlca.autocommit=true
messagebox('提示','存盘失败,请检查数据')
end if
else
ROLLBACK USING sqlca;
sqlca.autocommit=true
messagebox('提示','存盘失败,请检查数据')
end if
int lret_1,lret_2
sqlcasw.autocommit=false
lret_1=dw_1.update(true,false)
lret_2=dw_2.update(true,false)
if lret_1=1 and lret_2 then
COMMIT USING sqlcasw;
sqlcasw.autocommit=true
dw_1.resetupdate( )
dw_2.resetupdate( )
messagebox('提示','存盘成功')
else
ROLLBACK USING sqlcasw;
sqlcasw.autocommit=true
messagebox('提示','存盘失败,请检查数据')
end if