|
|
|
|
@@ -191,11 +191,13 @@ Public Class DatabaseWithFallback
|
|
|
|
|
|
|
|
|
|
' If there is no client, we assume there is no service (configured)
|
|
|
|
|
If _Client Is Nothing Then
|
|
|
|
|
_Logger.Debug("Client is empty, falling back to direct database access.")
|
|
|
|
|
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
' If ForceFallback flag is set, we go to database immediately
|
|
|
|
|
If pForceFallback Or _ClientConfig.ForceDirectDatabaseAccess Then
|
|
|
|
|
_Logger.Debug("ForceFallback is True, falling back to direct database access.")
|
|
|
|
|
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
@@ -332,26 +334,25 @@ Public Class DatabaseWithFallback
|
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Private Function GetDatatableFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable
|
|
|
|
|
Private Function GetDatatableFromDatabase(pSQLCommand As String, pDatabaseType 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)
|
|
|
|
|
_Logger.Debug("Fetching data from database [{0}] with Connection Id [{0}]", pDatabaseType.ToString, pConnectionId)
|
|
|
|
|
|
|
|
|
|
Select Case pDatabaseType
|
|
|
|
|
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
|
|
|
|
|
_Logger.Debug("Retrieving Connection String from Connection Id [{0}]", pConnectionId)
|
|
|
|
|
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 +398,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 +455,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
|
|
|
|
|
|