EDMI.API: DatabaseWithFallback does not use connection in some circumstances

This commit is contained in:
Jonathan Jenne 2023-03-30 12:00:07 +02:00
parent 88ac9e70b2
commit 1a860c9270

View File

@ -334,24 +334,20 @@ Public Class DatabaseWithFallback
Private Function GetDatatableFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable Private Function GetDatatableFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable
Try Try
Dim oResult As ExecuteNonQueryResponse = Nothing
Select Case DatabaseType Select Case DatabaseType
Case Constants.DatabaseType.ECM
Return _DatabaseECM.GetDatatable(pSQLCommand)
Case Constants.DatabaseType.IDB Case Constants.DatabaseType.IDB
Return _DatabaseIDB.GetDatatable(pSQLCommand) Return _DatabaseIDB.GetDatatable(pSQLCommand)
Case Else Case Else
Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) If pConnectionId > 0 Then
If oConnectionString = String.Empty Then Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId)
Return _DatabaseECM.GetDatatable(pSQLCommand)
Else
Return _DatabaseECM.GetDatatableWithConnection(pSQLCommand, oConnectionString) Return _DatabaseECM.GetDatatableWithConnection(pSQLCommand, oConnectionString)
Else
Return _DatabaseECM.GetDatatable(pSQLCommand)
End If End If
End Select End Select
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
Return Nothing Return Nothing
@ -397,20 +393,19 @@ Public Class DatabaseWithFallback
Private Function GetScalarValueFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Object Private Function GetScalarValueFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Object
Try Try
Select Case DatabaseType Select Case DatabaseType
Case Constants.DatabaseType.ECM
Return _DatabaseECM.GetScalarValue(pSQLCommand)
Case Constants.DatabaseType.IDB Case Constants.DatabaseType.IDB
Return _DatabaseIDB.GetScalarValue(pSQLCommand) Return _DatabaseIDB.GetScalarValue(pSQLCommand)
Case Else Case Else
Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) If pConnectionId > 0 Then
If oConnectionString = String.Empty Then Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId)
Return _DatabaseECM.GetScalarValue(pSQLCommand)
Else
Return _DatabaseECM.GetScalarValueWithConnection(pSQLCommand, oConnectionString) Return _DatabaseECM.GetScalarValueWithConnection(pSQLCommand, oConnectionString)
Else
Return _DatabaseECM.GetScalarValue(pSQLCommand)
End If End If
End Select End Select
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
Return Nothing Return Nothing
@ -455,21 +450,19 @@ Public Class DatabaseWithFallback
Private Function ExecuteNonQueryFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Boolean Private Function ExecuteNonQueryFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Boolean
Try Try
Select Case DatabaseType Select Case DatabaseType
Case Constants.DatabaseType.ECM
Return _DatabaseECM.ExecuteNonQuery(pSQLCommand)
Case Constants.DatabaseType.IDB Case Constants.DatabaseType.IDB
Return _DatabaseIDB.ExecuteNonQuery(pSQLCommand) Return _DatabaseIDB.ExecuteNonQuery(pSQLCommand)
Case Else Case Else
Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) If pConnectionId > 0 Then
If oConnectionString = String.Empty Then Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId)
Return _DatabaseECM.ExecuteNonQuery(pSQLCommand)
Else
Return _DatabaseECM.ExecuteNonQueryWithConnection(pSQLCommand, oConnectionString) Return _DatabaseECM.ExecuteNonQueryWithConnection(pSQLCommand, oConnectionString)
Else
Return _DatabaseECM.ExecuteNonQuery(pSQLCommand)
End If End If
End Select End Select
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
Return False Return False