Mendhak,

Thanks for that, it's worked I've had a look around but can't see how to handle a forced rollback If one of my nested functions or SP's returns false without raising an exception how do I ensure everything is rolled back. Is the following snippet valid?
vb Code:
  1. Using scope As Transactions.TransactionScope = New Transactions.TransactionScope()
  2.     Using myCon
  3.         '....
  4.         If iCmdResult = 0 Then
  5.             scope.Complete()
  6.         End If
  7.     End Using
  8. End Using

If an non exception error occurs then scope.complete will not be called. Will that force a rollback?