kreta/Sda.DataProvider/Wrappers/MSSQL/MSSQLTransactionWrapper.cs
2024-03-13 00:33:46 +01:00

68 lines
1.6 KiB
C#

using System.Data;
using System.Data.SqlClient;
using SDA.DataProvider.Core;
namespace SDA.DataProvider.MSSQLWrappers
{
class MSSQLTransactionWrapper : SDATransactionWrapper
{
private MSSQLConnectionWrapper connection;
public SqlTransaction Transaction;
internal MSSQLTransactionWrapper(MSSQLConnectionWrapper connection, SqlTransaction transaction)
{
this.connection = connection;
Transaction = transaction;
}
public override void Commit()
{
try
{
Transaction.Commit();
}
catch (SqlException exception)
{
throw MSSQLExceptionHelper.TranslateSqlException(exception);
}
}
public override void Rollback()
{
try
{
Transaction.Rollback();
}
catch (SqlException exception)
{
throw MSSQLExceptionHelper.TranslateSqlException(exception);
}
}
internal override IDbTransaction NativeTransaction => Transaction;
public override void Dispose()
{
Transaction.Dispose();
Transaction = null;
}
public override SDAConnectionWrapper Connection
{
get
{
return connection;
}
}
public override IsolationLevel IsolationLevel
{
get
{
return Transaction.IsolationLevel;
}
}
}
}