DCOM + ADOConnection三层,执行数据库操作事务未提交?该怎么解决

DCOM + ADOConnection三层,执行数据库操作事务未提交?
我的程序是用的客户端用DCom连接到中间件,中间件使用AdoConnection连接到数据库。
我在中间件中写一个Create Table的语句,做法为:
1.使用TADOQuery,直接对其进行赋值,没有做其他属性设置
2.代码如下:
  if ConnectDB then
  begin
  try
  Connect_db.BeginTrans;
  try
  with tempUpdateQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add(vSQL);
  ExecSQL;
  end;
  Connect_db.CommitTrans;
  except
  on e:Exception do
  begin
  OutMsg :='执行语句错误:' + E.Message;
  Connect_db.RollbackTrans;
  end;
  end;
  finally
  stopdb;
  end;
  end;

遇到的问题:
  1.如果加上事务处理的话,会一直报:无法在此会话中启动更多的事务(其他地方干干净净,没有做过事务处理)
  2.不用事务处理,能正确执行,但是执行完毕后我到服务器中select 该表,发现被锁现象(或者说事务未能提交)。这是何原因呢?

------解决方案--------------------
接分了
------解决方案--------------------
楼主做事很细致,发帖之后还把代码组织了。
------解决方案--------------------
中间件在注册时配置【事务】改为“不支持”或者“支持”

收藏