SDAC

TMSTransaction Component

The TMSTransaction component is designed to manage distributed transactions. Distributed transactions can be performed to one or more connections connected to the same or to different databases or servers. Within each connection a separate branch of the transaction is performed. TMSTransaction is based on the Microsoft Distributed Transaction Coordinator (MSDTC) functionality. Transactions can be managed by StartTransaction, Commit, and Rollback methods of TMSTransaction. For more information  on distributed transactions and MSDTC please refer to MSDN.

TMSTransaction does not support local transactions.To control local transactions you should use methods of the TMSConnection component.

The example below demonstrates using distributed transaction coordinated by Microsoft Distributed Transaction Coordinator:


begin
  MSConnection1.Connect;
  MSConnection2.Connect;
 
  MSTransaction.AddConnection(MSConnection1);
  MSTransaction.AddConnection(MSConnection2);
 
  MSTransaction.StartTransaction;
 
  MSSQL1.Connection := MSConnection1;
  MSSQL2.Connection := MSConnection2;
  try
    MSSQL1.Execute;
    MSSQL2.Execute;
    MSTransaction.Commit;
  except
    MSTransaction.Rollback;
  end;
end;

After both connections are established, they are added to the list of connections managed by MSTransaction. Call to StartTransaction makes both TMSConnections components work in the same distributed transaction. After MSSQL1 and MSSQL2 are executed, MSTransaction.Commit ensures that all changes to both databases are committed. If an exception occurs during execution, MSTransaction.Rollback restores both databases to their initial state.

See Also

© 1997-2019 Devart. All Rights Reserved. Request Support DAC Forum Provide Feedback