|
|
|
|
@@ -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,
|
|
|
|
|
|