EDMIAPI: Add _withConnection variants to database functions

This commit is contained in:
Jonathan Jenne 2022-03-16 13:23:38 +01:00
parent 742986a5a9
commit f4ead38e4c
2 changed files with 56 additions and 28 deletions

View File

@ -3,6 +3,7 @@
Public Const INVALID_OBEJCT_ID As Long = 0 Public Const INVALID_OBEJCT_ID As Long = 0
Public Enum DatabaseType Public Enum DatabaseType
None
ECM ECM
IDB IDB
End Enum End Enum

View File

@ -69,58 +69,85 @@ Public Class DatabaseWithFallback
Return _DatabaseECM.GetConnectionStringForId(pConnectionId) Return _DatabaseECM.GetConnectionStringForId(pConnectionId)
End Function End Function
Public Function GetDatatableECM(pSQL As String, Optional pConnectionId As Integer = 0) As DataTable #Region "GetDatatable"
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.ECM) With { Public Function GetDatatableECM(pSQL As String) As DataTable
.ConnectionId = pConnectionId Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.ECM))
})
End Function End Function
Public Async Function GetDatatableECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of DataTable) Public Async Function GetDatatableECMAsync(pSQL As String) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableECM(pSQL, pConnectionId)) Return Await Task.Run(Function() GetDatatableECM(pSQL))
End Function End Function
Public Function GetDatatableIDB(pSQL As String, Optional pConnectionId As Integer = 0) As DataTable Public Function GetDatatableIDB(pSQL As String) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.IDB) With { Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.IDB))
.ConnectionId = pConnectionId
})
End Function End Function
Public Async Function GetDatatableIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of DataTable) Public Async Function GetDatatableIDBAsync(pSQL As String) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableIDB(pSQL, pConnectionId)) Return Await Task.Run(Function() GetDatatableIDB(pSQL))
End Function End Function
Public Function GetScalarValueECM(pSQL As String, Optional pConnectionId As Integer = 0) As Object Public Function GetDatatableWithConnection(pSQL As String, pConnectionId As Integer) As DataTable
Return GetScalarValue(pSQL, Constants.DatabaseType.ECM, pForceFallback:=False, pConnectionId) Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.None) With {.ConnectionId = pConnectionId})
End Function End Function
Public Async Function GetScalarValueECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Object) Public Async Function GetDatatableWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of DataTable)
Return Await Task.Run(Function() GetScalarValueECM(pSQL, pConnectionId)) Return Await Task.Run(Function() GetDatatableWithConnection(pSQL, pConnectionId))
End Function
#End Region
#Region "GetScalarValue"
Public Function GetScalarValueECM(pSQL As String) As Object
Return GetScalarValue(pSQL, Constants.DatabaseType.ECM)
End Function End Function
Public Function GetScalarValueIDB(pSQL As String, Optional pConnectionId As Integer = 0) As Object Public Async Function GetScalarValueECMAsync(pSQL As String) As Task(Of Object)
Return GetScalarValue(pSQL, Constants.DatabaseType.IDB, pForceFallback:=False, pConnectionId) Return Await Task.Run(Function() GetScalarValueECM(pSQL))
End Function End Function
Public Async Function GetScalarValueIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Object) Public Function GetScalarValueIDB(pSQL As String) As Object
Return Await Task.Run(Function() GetScalarValueIDB(pSQL, pConnectionId)) Return GetScalarValue(pSQL, Constants.DatabaseType.IDB)
End Function End Function
Public Function ExecuteNonQueryECM(pSQL As String, Optional pConnectionId As Integer = 0) As Boolean Public Async Function GetScalarValueIDBAsync(pSQL As String) As Task(Of Object)
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.ECM, pForceFallback:=False, pConnectionId) Return Await Task.Run(Function() GetScalarValueIDB(pSQL))
End Function End Function
Public Async Function ExecuteNonQueryECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Boolean) Public Function GetScalarValueWithConnection(pSQL As String, pConnectionId As Integer) As Object
Return Await Task.Run(Function() ExecuteNonQueryECM(pSQL, pConnectionId)) Return GetScalarValue(pSQL, Constants.DatabaseType.None, pConnectionId:=pConnectionId)
End Function End Function
Public Function ExecuteNonQueryIDB(pSQL As String, Optional pConnectionId As Integer = 0) As Boolean Public Async Function GetScalarValueWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of Object)
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.IDB, pForceFallback:=False, pConnectionId) Return Await Task.Run(Function() GetScalarValueWithConnection(pSQL, pConnectionId))
End Function
#End Region
#Region "ExecuteNonQuery"
Public Function ExecuteNonQueryECM(pSQL As String) As Boolean
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.ECM)
End Function End Function
Public Async Function ExecuteNonQueryIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Boolean) Public Async Function ExecuteNonQueryECMAsync(pSQL As String) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryIDB(pSQL, pConnectionId)) Return Await Task.Run(Function() ExecuteNonQueryECM(pSQL))
End Function End Function
Public Function ExecuteNonQueryIDB(pSQL As String) As Boolean
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.IDB)
End Function
Public Async Function ExecuteNonQueryIDBAsync(pSQL As String) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryIDB(pSQL))
End Function
Public Function ExecuteNonQueryWithConnection(pSQL As String, pConnectionId As Integer) As Boolean
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.None, pConnectionId:=pConnectionId)
End Function
Public Async Function ExecuteNonQueryWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryWithConnection(pSQL, pConnectionId))
End Function
#End Region
''' <summary> ''' <summary>
''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback. ''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback.
''' </summary> ''' </summary>