From 1a860c9270a44983cf9a437e5c8ef0a793a2445e Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Thu, 30 Mar 2023 12:00:07 +0200 Subject: [PATCH] EDMI.API: DatabaseWithFallback does not use connection in some circumstances --- EDMIAPI/DatabaseWithFallback.vb | 39 ++++++++++++++------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/EDMIAPI/DatabaseWithFallback.vb b/EDMIAPI/DatabaseWithFallback.vb index 771fdee7..e3177d64 100644 --- a/EDMIAPI/DatabaseWithFallback.vb +++ b/EDMIAPI/DatabaseWithFallback.vb @@ -334,24 +334,20 @@ Public Class DatabaseWithFallback Private Function GetDatatableFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable Try - Dim oResult As ExecuteNonQueryResponse = Nothing - Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.GetDatatable(pSQLCommand) - Case Constants.DatabaseType.IDB Return _DatabaseIDB.GetDatatable(pSQLCommand) Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.GetDatatable(pSQLCommand) - Else + If pConnectionId > 0 Then + Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) Return _DatabaseECM.GetDatatableWithConnection(pSQLCommand, oConnectionString) + Else + Return _DatabaseECM.GetDatatable(pSQLCommand) End If End Select + Catch ex As Exception _Logger.Error(ex) Return Nothing @@ -397,20 +393,19 @@ Public Class DatabaseWithFallback Private Function GetScalarValueFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Object Try Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.GetScalarValue(pSQLCommand) - Case Constants.DatabaseType.IDB Return _DatabaseIDB.GetScalarValue(pSQLCommand) Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.GetScalarValue(pSQLCommand) - Else + If pConnectionId > 0 Then + Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) Return _DatabaseECM.GetScalarValueWithConnection(pSQLCommand, oConnectionString) + Else + Return _DatabaseECM.GetScalarValue(pSQLCommand) End If + End Select + Catch ex As Exception _Logger.Error(ex) Return Nothing @@ -455,21 +450,19 @@ Public Class DatabaseWithFallback Private Function ExecuteNonQueryFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Boolean Try Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.ExecuteNonQuery(pSQLCommand) - Case Constants.DatabaseType.IDB Return _DatabaseIDB.ExecuteNonQuery(pSQLCommand) Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.ExecuteNonQuery(pSQLCommand) - Else + If pConnectionId > 0 Then + Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) Return _DatabaseECM.ExecuteNonQueryWithConnection(pSQLCommand, oConnectionString) + Else + Return _DatabaseECM.ExecuteNonQuery(pSQLCommand) End If End Select + Catch ex As Exception _Logger.Error(ex) Return False