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 Function
|
||||
|
||||
Private Function MaybeGetTransaction(Connection As SqlConnection, Mode As TransactionMode, Transaction As SqlTransaction) As SqlTransaction
|
||||
If Connection Is Nothing Then
|
||||
Private Function MaybeGetTransaction(pConnection As SqlConnection, pTransactionMode As TransactionMode, pTransaction As SqlTransaction) As SqlTransaction
|
||||
If pConnection Is Nothing Then
|
||||
Throw New ArgumentNullException("Connection", "Could not get transaction because connection is null!")
|
||||
End If
|
||||
|
||||
If Mode = TransactionMode.NoTransaction Then
|
||||
Logger.Debug("Transaction Mode: [{0}]", pTransactionMode.ToString)
|
||||
|
||||
If pTransactionMode = TransactionMode.NoTransaction Then
|
||||
Return Nothing
|
||||
ElseIf Mode = TransactionMode.ExternalTransaction Then
|
||||
Return Transaction
|
||||
ElseIf pTransactionMode = TransactionMode.ExternalTransaction Then
|
||||
Return pTransaction
|
||||
Else
|
||||
Return Connection.BeginTransaction()
|
||||
Return pConnection.BeginTransaction()
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Function MaybeCommitTransaction(Transaction As SqlTransaction, TransactionMode As TransactionMode) As Boolean
|
||||
Select Case TransactionMode
|
||||
Private Function MaybeCommitTransaction(pTransaction As SqlTransaction, pTransactionMode As TransactionMode) As Boolean
|
||||
Select Case pTransactionMode
|
||||
Case TransactionMode.NoTransaction
|
||||
Return True
|
||||
Case TransactionMode.ExternalTransaction
|
||||
Return True
|
||||
Case TransactionMode.WithTransaction
|
||||
Try
|
||||
Transaction.Commit()
|
||||
pTransaction.Commit()
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Error while committing transaction!")
|
||||
@ -225,15 +227,15 @@ Public Class MSSQLServer
|
||||
''' <summary>
|
||||
''' This Function intentionally has no try..catch block to have any errors caught outside
|
||||
''' </summary>
|
||||
''' <param name="Connection"></param>
|
||||
''' <param name="pConnection"></param>
|
||||
''' <returns></returns>
|
||||
Private Function OpenSQLConnection(Connection As SqlConnection) As SqlConnection
|
||||
Private Function OpenSQLConnection(pConnection As SqlConnection) As SqlConnection
|
||||
Try
|
||||
If Connection.State = ConnectionState.Closed Then
|
||||
Connection.Open()
|
||||
If pConnection.State = ConnectionState.Closed Then
|
||||
pConnection.Open()
|
||||
End If
|
||||
|
||||
Return Connection
|
||||
Return pConnection
|
||||
Catch ex As Exception
|
||||
Logger.Error("Error while opening Connection!")
|
||||
Logger.Error(ex)
|
||||
@ -333,6 +335,20 @@ Public Class MSSQLServer
|
||||
End Using
|
||||
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,
|
||||
Optional pTransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
||||
Optional pTransaction As SqlTransaction = Nothing,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user