MTS中的事务控制(200分)

  • 主题发起人 主题发起人 tonglifeng
  • 开始时间 开始时间
T

tonglifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
环境:DELPHI5+MS SQL SERVER7+BDE
在MTS DATAMODULE中写一个函数SAVE,同时存两个表A,B,事务类型为Require a transaction.
try
datasetprivder1.applyupdate(adelta,0,ierror);
if ierror>0 then
abort
datasetprivder2.applyupdate(bdelta,0,ierror);
if ierror>0 then
abort
setcomplete
except
setabort
end;

问题是:
如果表A保存成功,B不成功,则数据库不ROOLBACK,为什么?
是我那里设置不对?如BDE中的MTS POOLING=TRUE
请问,如果MTS POOLING=TRUE 的意义何在?
 
BDE对MTS的支持不好,我原来也碰到同样的问题,一直没法解决回滚问题。
改用 DELPHI5 + MS SQL SERVER7 + ADO 一切问题都解决了,而且速度
很快。
如果MTS POOLING=TRUE,D5升级后不能即时激活,问题更加严重。

 
我一直采用 DELPHI5 + ADO + MS SQL SERVER7 组合
但 SQL Server 7 安装时一定得把字符集设成中文, 否则汉字出不来. (ODBC 没有这种情况)
 
多人接受答案了。
 
后退
顶部