H
hscys
Unregistered / Unconfirmed
GUEST, unregistred user!
我在做三层的销售单据时,碰到更新多表问题
前台用Clientdataset的COMMANDTEXT多个SQL语句更新多个表,要求多表更新同时成功,
否则回滚。
如:(希望在往“销售单据表”插入数据时,“库存表中的数量同时改变”
Clientdataset1.close;
Clientdataset1.commandtext:='insert into 销售单据表......';
Clientdataset1.execute;
Clientdataset2.close;
Clientdataset2.commandtext:='update 库存表......';
Clientdataset2.execute;
问题是Clientdataset1在执行execute时,数据已经提交到数据库,而且不能回滚了,
如果在执行Clientdataset1.execute;时断电了或者网络等其他因数,就有可能造成,
销售单据已经开出去,但是相应的库存量没有减少。希望这两步要嘛都成功,要嘛都回滚
该怎么做??
我用的是DELPHI5+ORACLE8I,应用层用QUERY,DATABASE,DATASETPROVIDER,
客户端用DCOM连接,用Clientdataset,请大虾帮忙
前台用Clientdataset的COMMANDTEXT多个SQL语句更新多个表,要求多表更新同时成功,
否则回滚。
如:(希望在往“销售单据表”插入数据时,“库存表中的数量同时改变”
Clientdataset1.close;
Clientdataset1.commandtext:='insert into 销售单据表......';
Clientdataset1.execute;
Clientdataset2.close;
Clientdataset2.commandtext:='update 库存表......';
Clientdataset2.execute;
问题是Clientdataset1在执行execute时,数据已经提交到数据库,而且不能回滚了,
如果在执行Clientdataset1.execute;时断电了或者网络等其他因数,就有可能造成,
销售单据已经开出去,但是相应的库存量没有减少。希望这两步要嘛都成功,要嘛都回滚
该怎么做??
我用的是DELPHI5+ORACLE8I,应用层用QUERY,DATABASE,DATASETPROVIDER,
客户端用DCOM连接,用Clientdataset,请大虾帮忙