Database: log transaction mode, add datatable async functions
This commit is contained in:
parent
9deeb35ad7
commit
bdceababcf
@ -109,29 +109,31 @@ Public Class MSSQLServer
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function MaybeGetTransaction(Connection As SqlConnection, Mode As TransactionMode, Transaction As SqlTransaction) As SqlTransaction
|
Private Function MaybeGetTransaction(pConnection As SqlConnection, pTransactionMode As TransactionMode, pTransaction As SqlTransaction) As SqlTransaction
|
||||||
If Connection Is Nothing Then
|
If pConnection Is Nothing Then
|
||||||
Throw New ArgumentNullException("Connection", "Could not get transaction because connection is null!")
|
Throw New ArgumentNullException("Connection", "Could not get transaction because connection is null!")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Mode = TransactionMode.NoTransaction Then
|
Logger.Debug("Transaction Mode: [{0}]", pTransactionMode.ToString)
|
||||||
|
|
||||||
|
If pTransactionMode = TransactionMode.NoTransaction Then
|
||||||
Return Nothing
|
Return Nothing
|
||||||
ElseIf Mode = TransactionMode.ExternalTransaction Then
|
ElseIf pTransactionMode = TransactionMode.ExternalTransaction Then
|
||||||
Return Transaction
|
Return pTransaction
|
||||||
Else
|
Else
|
||||||
Return Connection.BeginTransaction()
|
Return pConnection.BeginTransaction()
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function MaybeCommitTransaction(Transaction As SqlTransaction, TransactionMode As TransactionMode) As Boolean
|
Private Function MaybeCommitTransaction(pTransaction As SqlTransaction, pTransactionMode As TransactionMode) As Boolean
|
||||||
Select Case TransactionMode
|
Select Case pTransactionMode
|
||||||
Case TransactionMode.NoTransaction
|
Case TransactionMode.NoTransaction
|
||||||
Return True
|
Return True
|
||||||
Case TransactionMode.ExternalTransaction
|
Case TransactionMode.ExternalTransaction
|
||||||
Return True
|
Return True
|
||||||
Case TransactionMode.WithTransaction
|
Case TransactionMode.WithTransaction
|
||||||
Try
|
Try
|
||||||
Transaction.Commit()
|
pTransaction.Commit()
|
||||||
Return True
|
Return True
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Logger.Warn("Error while committing transaction!")
|
Logger.Warn("Error while committing transaction!")
|
||||||
@ -225,15 +227,15 @@ Public Class MSSQLServer
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' This Function intentionally has no try..catch block to have any errors caught outside
|
''' This Function intentionally has no try..catch block to have any errors caught outside
|
||||||
''' </summary>
|
''' </summary>
|
||||||
''' <param name="Connection"></param>
|
''' <param name="pConnection"></param>
|
||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Private Function OpenSQLConnection(Connection As SqlConnection) As SqlConnection
|
Private Function OpenSQLConnection(pConnection As SqlConnection) As SqlConnection
|
||||||
Try
|
Try
|
||||||
If Connection.State = ConnectionState.Closed Then
|
If pConnection.State = ConnectionState.Closed Then
|
||||||
Connection.Open()
|
pConnection.Open()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return Connection
|
Return pConnection
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Logger.Error("Error while opening Connection!")
|
Logger.Error("Error while opening Connection!")
|
||||||
Logger.Error(ex)
|
Logger.Error(ex)
|
||||||
@ -333,6 +335,20 @@ Public Class MSSQLServer
|
|||||||
End Using
|
End Using
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Async Function GetDatatableWithConnectionObjectAsync(pSqlCommand As String, pSqlConnection As SqlConnection,
|
||||||
|
Optional pTransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
||||||
|
Optional pTransaction As SqlTransaction = Nothing,
|
||||||
|
Optional pTimeout As Integer = Constants.DEFAULT_TIMEOUT) As Task(Of DataTable)
|
||||||
|
Return Await Task.Run(Function() GetDatatableWithConnectionObject(pSqlCommand, pSqlConnection, pTransactionMode, pTransaction, pTimeout))
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Async Function GetDatatableWithConnectionObjectAsync(pSqlCommandObject As SqlCommand, pSqlConnection As SqlConnection,
|
||||||
|
Optional pTransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
||||||
|
Optional pTransaction As SqlTransaction = Nothing,
|
||||||
|
Optional pTimeout As Integer = Constants.DEFAULT_TIMEOUT) As Task(Of DataTable)
|
||||||
|
Return Await Task.Run(Function() GetDatatableWithConnectionObject(pSqlCommandObject, pSqlConnection, pTransactionMode, pTransaction, pTimeout))
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Function GetDatatableWithConnectionObject(pSqlCommand As String, pSqlConnection As SqlConnection,
|
Public Function GetDatatableWithConnectionObject(pSqlCommand As String, pSqlConnection As SqlConnection,
|
||||||
Optional pTransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
Optional pTransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
||||||
Optional pTransaction As SqlTransaction = Nothing,
|
Optional pTransaction As SqlTransaction = Nothing,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user