MtsDataModule中用ADO连接远程SQL数据库,将MtsDataModule的事务模型设成需要事务。
然后输出一个方法供前端调用,该方法用adoquery执行两条更新数据的sql语句,其中
第一条可以正确执行,第二条无法正确执行(如插入了重复主键)。前端以dcomconnection
调用该方法结果报错 “不能在指定的事务处理器中获得新事务”。如果sql数据库和应用层在同一台电脑上的话就可以正确执行。如果将MtsDataModule的事务
模型改成支持的话,无论在远程还是本地sql数据库均无法回滚第一条语句。
由于实际业务处理中需要多个MtsDataModule,因此不能用adoconnection的进行事务处理。
各位专家看看是何问题。procedure Ttdmtest.insertuser;
begin
  try
    with adoquery1 do
    begin
      sql.Clear;
      sql.Add('insert into _sysuser (usercode) values (''testttt'')');
      execsql;
      close;
      sql.Clear;
      sql.Add('insert into _sysuser (usercode) values (''testttt'')');
      execsql;
      close;
    end;
    setcomplete;
  except
    setabort;
    raise;
  end;
end;