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 Enum DatabaseType
None
ECM
IDB
End Enum

View File

@ -69,58 +69,85 @@ Public Class DatabaseWithFallback
Return _DatabaseECM.GetConnectionStringForId(pConnectionId)
End Function
Public Function GetDatatableECM(pSQL As String, Optional pConnectionId As Integer = 0) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.ECM) With {
.ConnectionId = pConnectionId
})
#Region "GetDatatable"
Public Function GetDatatableECM(pSQL As String) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.ECM))
End Function
Public Async Function GetDatatableECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableECM(pSQL, pConnectionId))
Public Async Function GetDatatableECMAsync(pSQL As String) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableECM(pSQL))
End Function
Public Function GetDatatableIDB(pSQL As String, Optional pConnectionId As Integer = 0) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.IDB) With {
.ConnectionId = pConnectionId
})
Public Function GetDatatableIDB(pSQL As String) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.IDB))
End Function
Public Async Function GetDatatableIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableIDB(pSQL, pConnectionId))
Public Async Function GetDatatableIDBAsync(pSQL As String) As Task(Of DataTable)
Return Await Task.Run(Function() GetDatatableIDB(pSQL))
End Function
Public Function GetScalarValueECM(pSQL As String, Optional pConnectionId As Integer = 0) As Object
Return GetScalarValue(pSQL, Constants.DatabaseType.ECM, pForceFallback:=False, pConnectionId)
Public Function GetDatatableWithConnection(pSQL As String, pConnectionId As Integer) As DataTable
Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.None) With {.ConnectionId = pConnectionId})
End Function
Public Async Function GetScalarValueECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Object)
Return Await Task.Run(Function() GetScalarValueECM(pSQL, pConnectionId))
Public Async Function GetDatatableWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of DataTable)
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
Public Function GetScalarValueIDB(pSQL As String, Optional pConnectionId As Integer = 0) As Object
Return GetScalarValue(pSQL, Constants.DatabaseType.IDB, pForceFallback:=False, pConnectionId)
Public Async Function GetScalarValueECMAsync(pSQL As String) As Task(Of Object)
Return Await Task.Run(Function() GetScalarValueECM(pSQL))
End Function
Public Async Function GetScalarValueIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Object)
Return Await Task.Run(Function() GetScalarValueIDB(pSQL, pConnectionId))
Public Function GetScalarValueIDB(pSQL As String) As Object
Return GetScalarValue(pSQL, Constants.DatabaseType.IDB)
End Function
Public Function ExecuteNonQueryECM(pSQL As String, Optional pConnectionId As Integer = 0) As Boolean
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.ECM, pForceFallback:=False, pConnectionId)
Public Async Function GetScalarValueIDBAsync(pSQL As String) As Task(Of Object)
Return Await Task.Run(Function() GetScalarValueIDB(pSQL))
End Function
Public Async Function ExecuteNonQueryECMAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryECM(pSQL, pConnectionId))
Public Function GetScalarValueWithConnection(pSQL As String, pConnectionId As Integer) As Object
Return GetScalarValue(pSQL, Constants.DatabaseType.None, pConnectionId:=pConnectionId)
End Function
Public Function ExecuteNonQueryIDB(pSQL As String, Optional pConnectionId As Integer = 0) As Boolean
Return ExecuteNonQuery(pSQL, Constants.DatabaseType.IDB, pForceFallback:=False, pConnectionId)
Public Async Function GetScalarValueWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of Object)
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
Public Async Function ExecuteNonQueryIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryIDB(pSQL, pConnectionId))
Public Async Function ExecuteNonQueryECMAsync(pSQL As String) As Task(Of Boolean)
Return Await Task.Run(Function() ExecuteNonQueryECM(pSQL))
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>
''' 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>