diff --git a/app/DD_PM_WINDREAM/ClassControlCreator.vb b/app/DD_PM_WINDREAM/ClassControlCreator.vb index 72ceda5..85349b9 100644 --- a/app/DD_PM_WINDREAM/ClassControlCreator.vb +++ b/app/DD_PM_WINDREAM/ClassControlCreator.vb @@ -14,6 +14,8 @@ Imports DigitalData.Controls.LookupGrid Imports DigitalData.Modules.Language.Utils Imports DigitalData.GUIs.Common Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.EDMI.API.Constants Public Class ClassControlCreator @@ -516,7 +518,10 @@ Public Class ClassControlCreator Dim oColumnName As String = oRow.Item("SPALTENNAME") If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then - oComboboxDataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId) + 'oComboboxDataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId) + oComboboxDataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oConnectionId + }) End If Dim oRepositoryItem = GridTables_GetRepositoryItemForColumn(oColumnName, oComboboxDataTable, oRow.Item("ADVANCED_LOOKUP")) @@ -844,7 +849,10 @@ Public Class ClassControlCreator Public Shared Sub GridTables_CacheDatatableForColumn(pControlId As Object, pColumnName As Object, pSqlStatement As Object, pConnectionId As Integer, pAdvancedLookup As Boolean) Try - Dim oTable As DataTable = ClassDatabase.Return_Datatable_ConId(pSqlStatement, pConnectionId) + 'Dim oTable As DataTable = ClassDatabase.Return_Datatable_ConId(pSqlStatement, pConnectionId) + Dim oTable As DataTable = Database.GetDatatable(New GetDatatableOptions(pSqlStatement, DatabaseType.ECM) With { + .ConnectionId = pConnectionId + }) ' If no columns for this control have been added, create an empty dict now If Not GridTables.ContainsKey(pControlId) Then diff --git a/app/DD_PM_WINDREAM/ClassDataASorDB.vb b/app/DD_PM_WINDREAM/ClassDataASorDB.vb deleted file mode 100644 index 8d84f98..0000000 --- a/app/DD_PM_WINDREAM/ClassDataASorDB.vb +++ /dev/null @@ -1,92 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Public Class ClassDataASorDB - Private _Logger As Logger - Public Sub New() - _Logger = LOGGER - End Sub - Public Function GetDatatable(pDB As String, pSQL As String, pAppServDT As String, pAppServFilter As String, Optional pAppServSort As String = "", Optional pForce As String = "") As DataTable - Try - Dim oReturnDT As DataTable - If EDMIAppServerActive = True And pForce = String.Empty Then - Try - Dim oTableResult As TableResult = _Client.GetDatatableByName(pAppServDT, pAppServFilter, pAppServSort) - oReturnDT = oTableResult.Table - If IsNothing(oReturnDT) Then - _Logger.Warn($"Datatable from ApPServData is nothing [{pAppServDT} - {pAppServFilter}] - Failover via DB") - Return GetDatatable(pDB, pSQL, "", "", "", "DB") - End If - Catch ex As Exception - _Logger.Warn($"Error getting ApPServData [{pAppServDT} - {pAppServFilter}]") - Return GetDatatable(pDB, pSQL, "", "", "", "DB") - End Try - Else - If pDB = "DD_ECM" Then - oReturnDT = Database_ECM.GetDatatable(pSQL) - ElseIf pDB = "IDB" Then - oReturnDT = Database_IDB.GetDatatable(pSQL) - End If - - End If - Return oReturnDT - Catch ex As Exception - _Logger.Error(ex) - End Try - End Function - - Public Function CheckModuleData() - Try - Dim oSql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','CW',{1})", USER_USERNAME) - Dim DT_CHECKUSER_MODULE As DataTable - DT_CHECKUSER_MODULE = GetDatatable("DD_ECM", oSql, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'CW'", "", "") - - If DT_CHECKUSER_MODULE.Rows.Count = 0 Then - _Logger.Info("DT_CHECKUSER_MODULE.Rows.Count = 0", True) - 'ERROR_STATE = "NO USER" - MsgBox("Sorry - Something went wrong in getting Your rights." & vbNewLine & "Please contact the system administrator!", MsgBoxStyle.Exclamation) - Return False - End If - If DT_CHECKUSER_MODULE.Rows.Count = 1 Then - _Logger.Info(">> Login Username: " & USER_USERNAME, False) - _Logger.Info(">> Login time: " & Now.ToString, False) - USER_ID = DT_CHECKUSER_MODULE.Rows(0).Item("USER_ID") - USER_SURNAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_SURNAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_SURNAME")) - USER_PRENAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_PRENAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_PRENAME")) - USER_SHORTNAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_SHORTNAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_SHORTNAME")) - USER_EMAIL = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")) - USER_LANGUAGE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_LANGUAGE") - USER_DATE_FORMAT = DT_CHECKUSER_MODULE.Rows(0).Item("USER_DATE_FORMAT") - - USER_IS_ADMIN = DT_CHECKUSER_MODULE.Rows(0).Item("IS_ADMIN") - ADDITIONAL_TITLE = DT_CHECKUSER_MODULE.Rows(0).Item("ADDITIONAL_TITLE") - If ADDITIONAL_TITLE = String.Empty Then - ADDITIONAL_TITLE = My.Application.Info.ProductName - End If - - Return True - Else - _Logger.Info(" - User '" & USER_USERNAME & "' not listed in Useradministration!", False) - 'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") - 'Me.Close() - Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.") - MsgBox(msg, MsgBoxStyle.Exclamation) - Return False - End If - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - - End Function - Public Sub Refresh_Connections() - Try - Dim oSql = String.Format("SELECT * FROM TBDD_CONNECTION") - Dim oResult As DataTable - DT_CONNECTIONS = GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "", "", "") - Catch ex As Exception - _Logger.Error(ex) - MsgBox("Unexpected Error in Refresh_Connections: " & ex.Message, MsgBoxStyle.Critical) - End Try - End Sub -End Class diff --git a/app/DD_PM_WINDREAM/ClassDatabase.vb b/app/DD_PM_WINDREAM/ClassDatabase.vb deleted file mode 100644 index 027f00b..0000000 --- a/app/DD_PM_WINDREAM/ClassDatabase.vb +++ /dev/null @@ -1,341 +0,0 @@ -Imports System.Data.SqlClient -Imports Oracle.ManagedDataAccess.Client -Imports System.Threading.Tasks - -Public Class ClassDatabase - Private Shared SQLSERVERConnectionString As String - Private Shared OracleConnectionString As String - Public Shared Function Get_ConnectionString(id As Integer) - Dim connectionString As String = "" - Try - 'Me.TBCONNECTIONTableAdapter.FillByID(Me.DD_DMSLiteDataSet.TBCONNECTION, id) - Dim DTConnection As DataTable = Database_ECM.GetDatatable("SELECT * FROM TBDD_CONNECTION WHERE GUID = " & id) - If DTConnection.Rows.Count = 1 Then - Select Case DTConnection.Rows(0).Item("SQL_PROVIDER").ToString.ToUpper - Case "MS-SQL" - If DTConnection.Rows(0).Item("USERNAME") = "WINAUTH" Then - connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;" - Else - connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";" - End If - ' connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";" - Case "Oracle" - If DTConnection.Rows(0).Item("BEMERKUNG").ToString.Contains("without tnsnames") Then - connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & DTConnection.Rows(0).Item("SERVER") & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" & - DTConnection.Rows(0).Item("DATENBANK") & ")));User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";" - Else - connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Persist Security Info=True;User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";Unicode=True" - End If - 'Case "ODBC" - ' Dim conn As New OdbcConnection("dsn=" & DTConnection.Rows(0).Item("SERVER") & ";uid=" & DTConnection.Rows(0).Item("USERNAME") & ";pwd=" + DTConnection.Rows(0).Item("PASSWORD")) - ' connectionString = conn.ConnectionString - Case Else - LOGGER.Info(" - ConnectionType nicht integriert", False) - MsgBox("ConnectionType nicht integriert", MsgBoxStyle.Critical, "Bitte Konfiguration Connection überprüfen!") - End Select - Else - LOGGER.Info(" No entry for Connection-ID: " & id.ToString, True) - End If - - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info(" - Error in bei Get ConnectionString - Fehler: " & vbNewLine & ex.Message) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Get ConnectionString:") - End Try - Return connectionString - End Function - Public Shared Function Init(Optional ConString As String = "") - Try - If ConString = String.Empty Then - SQLSERVERConnectionString = CONNECTION_STRING_ECM - End If - - Dim SQLconnect As New SqlClient.SqlConnection - If ConString <> String.Empty Then - SQLconnect.ConnectionString = ConString - Else - SQLconnect.ConnectionString = SQLSERVERConnectionString - End If - - SQLconnect.Open() - SQLconnect.Close() - Return True - Catch ex As Exception - LOGGER.Error(ex) - If ConString <> String.Empty Then - LOGGER.Info($"Error initializing Database [{ConString}] " & ex.Message, True) - Else - LOGGER.Info($"Error initializing Database [{CONNECTION_STRING_ECM}] " & ex.Message, True) - End If - - Return False - End Try - End Function - - Public Shared Function Return_Datatable(pSQLCommand As String, Optional pInfo As String = "") As DataTable - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - LOGGER.Debug($"Return_Datatable[{pSQLCommand}]#{pInfo}") - SQLconnect.ConnectionString = SQLSERVERConnectionString - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - SQLcommand.CommandTimeout = 120 - SQLcommand.CommandText = pSQLCommand - LOGGER.Debug("Execute ReturnDatatable: " & pSQLCommand) - Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand) - Dim dt As DataTable = New DataTable() - adapter1.Fill(dt) - SQLconnect.Close() - Return dt - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Return_Datatable{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - - Public Shared Async Function Return_DatatableAsync(pSQLCommand As String, Optional pInfo As String = "") As Task(Of DataTable) - Return Await Task.Run(Function() - Return Return_Datatable(pSQLCommand, pInfo) - End Function) - End Function - - Public Shared Function Return_Datatable_ConId(pSQLCommand As String, ConnID As Integer, Optional pInfo As String = "") - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim oConnString = Get_ConnectionString(ConnID) - LOGGER.Debug($"Return_Datatable_ConId [{ConnID}]#[{pSQLCommand}]#{pInfo}") - Dim oSQLconnect As New SqlClient.SqlConnection - Dim oSQLcommand As SqlClient.SqlCommand - oSQLconnect.ConnectionString = oConnString - oSQLconnect.Open() - oSQLcommand = oSQLconnect.CreateCommand - oSQLcommand.CommandText = pSQLCommand - - Dim oSQLAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(oSQLcommand) - Dim oReturnDatatable As DataTable = New DataTable() - oSQLAdapter.Fill(oReturnDatatable) - oSQLconnect.Close() - Return oReturnDatatable - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Return_Datatable_ConId{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - Public Shared Function Return_Datatable_ConStr(pSQLCommand As String, ConNStr As String, Optional pInfo As String = "") - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - - LOGGER.Debug("ConnectionString: [{0}]", ConNStr) - LOGGER.Debug("Return_Datatable_ConStr: {0}", pSQLCommand) - - Dim oSQLconnect As New SqlClient.SqlConnection - Dim oSQLcommand As SqlClient.SqlCommand - oSQLconnect.ConnectionString = ConNStr - oSQLconnect.Open() - oSQLcommand = oSQLconnect.CreateCommand - oSQLcommand.CommandText = pSQLCommand - - Dim oSQLAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(oSQLcommand) - Dim oReturnDatatable As DataTable = New DataTable() - oSQLAdapter.Fill(oReturnDatatable) - oSQLconnect.Close() - Return oReturnDatatable - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Return_Datatable_ConStr{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - Public Shared Function Execute_non_Query(pSQLCommand As String, Optional pInfo As String = "") - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - SQLconnect.ConnectionString = SQLSERVERConnectionString - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = pSQLCommand - LOGGER.Debug("Execute_non_Query Created: " & pSQLCommand) - SQLcommand.ExecuteNonQuery() - SQLcommand.Dispose() - SQLconnect.Close() - Return True - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Execute_non_Query{pInfo}: {ex.Message} [{pSQLCommand}]") - Return False - End Try - End Function - Public Shared Function Execute_non_Query_ConStr(pSQLCommand As String, ConnString As String, Optional pInfo As String = "") - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - SQLconnect.ConnectionString = ConnString - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = pSQLCommand - LOGGER.Debug("Execute_non_Query_ConStr Created: " & pSQLCommand) - SQLcommand.ExecuteNonQuery() - SQLcommand.Dispose() - SQLconnect.Close() - Return True - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Execute_non_Query_ConStr{pInfo}: {ex.Message} [{pSQLCommand}]") - Return False - End Try - End Function - Public Shared Function Execute_Scalar(pSQLCommand As String, ConString As String, Optional pInfo As String = "") - Dim result - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - SQLconnect.ConnectionString = ConString - - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = pSQLCommand - LOGGER.Debug("Execute_Scalar: " & pSQLCommand) - result = SQLcommand.ExecuteScalar() - SQLcommand.Dispose() - SQLconnect.Close() - Return result - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Execute_Scalar{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - Public Shared Function Execute_Scalar_ConStr(pSQLCommand As String, ConString As String, Optional pInfo As String = "") - Dim result - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - SQLconnect.ConnectionString = ConString - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = pSQLCommand - LOGGER.Debug("Execute_Scalar_ConStr Scalar: " & pSQLCommand) - result = SQLcommand.ExecuteScalar() - SQLcommand.Dispose() - SQLconnect.Close() - Return result - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Execute_Scalar_ConStr{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - Public Shared Function Execute_Scalar_ConID(pSQLCommand As String, ConnID As Integer, Optional pInfo As String = "") - Dim result - Try - If pInfo <> "" Then - pInfo = "[" & pInfo & "]" - End If - Dim oConnString = Get_ConnectionString(ConnID) - LOGGER.Debug($"Execute_Scalar_ConID [{ConnID}]: " & pSQLCommand) - Dim SQLconnect As New SqlClient.SqlConnection - Dim SQLcommand As SqlClient.SqlCommand - SQLconnect.ConnectionString = oConnString - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = pSQLCommand - result = SQLcommand.ExecuteScalar() - SQLcommand.Dispose() - SQLconnect.Close() - Return result - Catch ex As Exception - LOGGER.Warn($"Unexpected Error in Execute_Scalar_ConID{pInfo}: {ex.Message} [{pSQLCommand}]") - Return Nothing - End Try - End Function - Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String) - Dim result - Try - Dim SQLconnect As New OracleConnection - Dim SQLcommand As New OracleCommand - SQLconnect.ConnectionString = OracleConnection - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = cmdscalar - result = SQLcommand.ExecuteScalar() - SQLcommand.Dispose() - SQLconnect.Close() - Return result - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Fehler bei OracleExecute_Scalar: " & ex.Message, True) - LOGGER.Info("#SQL: " & cmdscalar, False) - Return Nothing - End Try - End Function - Public Shared Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False) - Try - Dim SQLconnect As New OracleConnection - Dim SQLcommand As OracleCommand - SQLconnect.ConnectionString = OracleConnection - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - 'Update Last Created Record in Foo - SQLcommand.CommandText = ExecuteCMD - SQLcommand.ExecuteNonQuery() - SQLcommand.Dispose() - SQLconnect.Close() - Return True - Catch ex As Exception - LOGGER.Error(ex) - If userInput = True Then - MsgBox("Error in OracleExecute_non_Query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical) - End If - LOGGER.Info("Fehler bei OracleExecute_non_Query: " & ex.Message, True) - LOGGER.Info("#SQL: " & ExecuteCMD, False) - - Return False - End Try - End Function - - Public Shared Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False) - Try - Dim SQLconnect As New OracleConnection - Dim SQLcommand As OracleCommand - SQLconnect.ConnectionString = OracleConnection - SQLconnect.Open() - SQLcommand = SQLconnect.CreateCommand - SQLcommand.CommandText = Select_anweisung - - Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(SQLcommand) - Dim dt As DataTable = New DataTable() - adapter1.Fill(dt) - SQLconnect.Close() - Return dt - Catch ex As Exception - LOGGER.Error(ex) - If userInput = True Then - MsgBox("Error in Oracle Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical) - End If - LOGGER.Info("Fehler bei Oracle_Return_Datatable: " & ex.Message, True) - LOGGER.Info("#SQL: " & Select_anweisung, False) - Return Nothing - End Try - End Function -End Class diff --git a/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb b/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb index 79f4bc7..cd4cd79 100644 --- a/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb +++ b/app/DD_PM_WINDREAM/ClassFinalizeDoc.vb @@ -1,9 +1,17 @@ -Public Class ClassFinalizeDoc +Imports DigitalData.Modules.EDMI.API.Constants +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback + +Public Class ClassFinalizeDoc Public Shared Function Write_Final_Metadata(WMObject As WINDREAMLib.WMObject) Try Dim _error As Boolean = False If CURRENT_DT_FINAL_INDEXING Is Nothing Then - CURRENT_DT_FINAL_INDEXING = Database_ECM.GetDatatable(String.Format("select * from TBPM_PROFILE_FINAL_INDEXING where PROFIL_ID = {0}", CURRENT_ProfilGUID)) ', "Write_Final_Metadata") + Dim oSQL = String.Format("select * from TBPM_PROFILE_FINAL_INDEXING where PROFIL_ID = {0}", CURRENT_ProfilGUID) + 'CURRENT_DT_FINAL_INDEXING = Database_ECM.GetDatatable(oSQL) ', "Write_Final_Metadata") + CURRENT_DT_FINAL_INDEXING = Database.GetDatatable("TBPM_PROFILE_FINAL_INDEXING", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}" + }) + End If If CURRENT_DT_FINAL_INDEXING.Rows.Count > 0 Then diff --git a/app/DD_PM_WINDREAM/ClassInit.vb b/app/DD_PM_WINDREAM/ClassInit.vb index cd11070..7a9957b 100644 --- a/app/DD_PM_WINDREAM/ClassInit.vb +++ b/app/DD_PM_WINDREAM/ClassInit.vb @@ -1,18 +1,14 @@ -Imports System.ComponentModel -Imports System.Globalization -Imports DLLLicenseManager +Imports DLLLicenseManager Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Config -Imports System.Threading Imports DigitalData.Modules.EDMI.API -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.EDMI.API.Constants Imports DigitalData.Modules.Database Public Class ClassInit Public _lizenzManager As ClassLicenseManager - Private DataASorDB As ClassDataASorDB - Public Sub New() - End Sub + 'Private DataASorDB As ClassDataASorDB Public Sub InitLogger() @@ -49,7 +45,10 @@ Public Class ClassInit Public Sub InitUserConfig() Try - DataASorDB = New ClassDataASorDB + 'DataASorDB = New ClassDataASorDB + + + Dim oUserAppDataPath As String = Application.UserAppDataPath Dim oLegacyAppDataPath As String = Application.UserAppDataPath Dim oCommonAppDataPath = Application.CommonAppDataPath @@ -98,19 +97,19 @@ Public Class ClassInit Try - Dim oSplit() = CONFIG.Config.EDMIAppServer.ToString.Split(";") - Dim oAppServer = oSplit(0) - Dim oAppServerPort = 9000 - If oSplit.Length = 2 Then - oAppServerPort = oSplit(1) - End If - _Client = New Client(LOGCONFIG, oAppServer, oAppServerPort) + 'Dim oSplit() = CONFIG.Config.EDMIAppServer.ToString.Split(";") + 'Dim oAppServer = oSplit(0) + 'Dim oAppServerPort = 9000 + 'If oSplit.Length = 2 Then + ' oAppServerPort = oSplit(1) + 'End If + _Client = New Client(LOGCONFIG, CONFIG.Config.EDMIAppServer) If Not IsNothing(_Client) Then If _Client.Connect() Then EDMIAppServerActive = True - LOGGER.Info($"EDMIAppServer [{oAppServer}] is active!") + LOGGER.Info($"EDMIAppServer [{CONFIG.Config.EDMIAppServer}] is active!") Else - LOGGER.Warn($"#### !!! Could not Connect to APPServer [{oAppServer}]!!! ###") + LOGGER.Warn($"#### !!! Could not Connect to APPServer [{CONFIG.Config.EDMIAppServer}]!!! ###") End If End If Catch ex As Exception @@ -173,11 +172,12 @@ Public Class ClassInit Database_ECM = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_ECM) If Database_ECM.DBInitialized = True Then - ClassDatabase.Init(CONNECTION_STRING_ECM) + 'ClassDatabase.Init(CONNECTION_STRING_ECM) dbResult = True Else dbResult = False End If + If CONNECTION_STRING_IDB <> String.Empty Then Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_ECM) If Database_IDB.DBInitialized = True Then @@ -186,6 +186,12 @@ Public Class ClassInit End If End If + + ' We initialize the Class in anycase. + ' If there is no client, it will fall back to the db by itself + Database = New DatabaseWithFallback(LOGCONFIG, _Client, Database_ECM, Database_IDB) + + 'If CONNECTION_STRING_APP_SERVER <> String.Empty Then ' Database_APPSERVER = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_APP_SERVER) ' If Database_APPSERVER.DBInitialized = False Then @@ -253,7 +259,10 @@ Public Class ClassInit Dim oSQLSW As New RefreshHelper.SW("VWDD_USER_CLIENT") oSQL = $"SELECT * FROM VWDD_USER_CLIENT WHERE UPPER(USERNAME) = UPPER('{USER_USERNAME}')" - DT_CLIENT_USER = DataASorDB.GetDatatable("DD_ECM", oSQL, "VWDD_USER_CLIENT", $"USERNAME like '{USER_USERNAME}'") + DT_CLIENT_USER = Database.GetDatatable("VWDD_USER_CLIENT", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"USERNAME like '{USER_USERNAME}'" + }) + 'DT_CLIENT_USER = DataASorDB.GetDatatable("DD_ECM", oSQL, "VWDD_USER_CLIENT", $"USERNAME like '{USER_USERNAME}'") oSQLSW.Done() If DT_CLIENT_USER.Rows.Count > 1 Then @@ -276,7 +285,13 @@ Public Class ClassInit Dim oFnct As New RefreshHelper.SW("FNDD_CHECK_USER_MODULE") oSQL = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','PM',{1})", USER_USERNAME, CLIENT_SELECTED) Dim DT_CHECKUSER_MODULE As DataTable - DT_CHECKUSER_MODULE = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'") + + 'DT_CHECKUSER_MODULE = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'") + DT_CHECKUSER_MODULE = Database.GetDatatable("TBDD_USER_MODULE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'" + }) + + oFnct.Done() If DT_CHECKUSER_MODULE.Rows.Count = 0 Then LOGGER.Info("DT_CHECKUSER_MODULE.Rows.Count = 0", True) @@ -376,41 +391,61 @@ Public Class ClassInit Public Sub InitBasics() Dim oStep As String Try - If IsNothing(DataASorDB) Then - DataASorDB = New ClassDataASorDB - End If + 'If IsNothing(DataASorDB) Then + ' DataASorDB = New ClassDataASorDB + 'End If Dim oStopWatch As New RefreshHelper.SW("InitBasics") Dim oSql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1") oStep = "TBPM_KONFIGURATION" - BASEDATA_DT_CONFIG = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_KONFIGURATION", $"GUID = 1") + 'BASEDATA_DT_CONFIG = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_KONFIGURATION", $"GUID = 1") + BASEDATA_DT_CONFIG = Database.GetDatatable("TBPM_KONFIGURATION", New GetDatatableOptions(oSql, DatabaseType.ECM) With { + .FilterExpression = $"GUID = 1" + }) Settings_LoadBasicConfig() + oStep = "TBDD_CONNECTION" oSql = "select * from TBDD_CONNECTION WHERE AKTIV = 1" - BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "") + 'BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "") + BASEDATA_DT_TBDD_CONNECTION = Database.GetDatatable("TBDD_CONNECTION", New GetDatatableOptions(oSql, DatabaseType.ECM)) + oStep = "TBDD_3RD_PARTY_MODULES" oSql = "Select * FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1" Dim oTBDD_3RD_PARTY_MODULES As DataTable - oTBDD_3RD_PARTY_MODULES = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_3RD_PARTY_MODULES", "") + 'oTBDD_3RD_PARTY_MODULES = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_3RD_PARTY_MODULES", "") + oTBDD_3RD_PARTY_MODULES = Database.GetDatatable("TBDD_3RD_PARTY_MODULES", New GetDatatableOptions(oSql, DatabaseType.ECM)) For Each oROW As DataRow In oTBDD_3RD_PARTY_MODULES.Rows If oROW.Item("NAME") = "GDPICTURE" Then GDPICTURE_LICENSE = oROW.Item("LICENSE") End If Next + oStep = "TBDD_GUI_LANGUAGE_PHRASE" oSql = "SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE IN ('PM','All Modules')" - BASEDATA_DT_GUI_LANGUAGE_PHRASES = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_GUI_LANGUAGE_PHRASE", "") + 'BASEDATA_DT_GUI_LANGUAGE_PHRASES = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_GUI_LANGUAGE_PHRASE", "") + BASEDATA_DT_GUI_LANGUAGE_PHRASES = Database.GetDatatable("TBDD_GUI_LANGUAGE_PHRASE", New GetDatatableOptions(oSql, DatabaseType.ECM)) + oStep = "TBPM_PROFILE_SEARCH" oSql = "select * from TBPM_PROFILE_SEARCH where TYPE = 'DOC' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX" - BASEDATA_DT_PROFILES_SEARCHES_DOC = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_PROFILE_SEARCH", "TYPE = 'DOC'", "PROFILE_ID,TAB_INDEX") + 'BASEDATA_DT_PROFILES_SEARCHES_DOC = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_PROFILE_SEARCH", "TYPE = 'DOC'", "PROFILE_ID,TAB_INDEX") + BASEDATA_DT_PROFILES_SEARCHES_DOC = Database.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSql, DatabaseType.ECM) With { + .FilterExpression = "TYPE = 'DOC'", + .SortByColumn = "PROFILE_ID,TAB_INDEX" + }) BASEDATA_DT_PROFILE_SEARCHES_DOC = BASEDATA_DT_PROFILES_SEARCHES_DOC.Clone() + oStep = "TBPM_MAIN_VIEW_GROUPS" oSql = "SELECT * FROM TBPM_MAIN_VIEW_GROUPS WHERE ACTIVE = 1" - BASEDATA_DTGRID_GROUPS = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_MAIN_VIEW_GROUPS", "") + 'BASEDATA_DTGRID_GROUPS = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_MAIN_VIEW_GROUPS", "") + BASEDATA_DTGRID_GROUPS = Database.GetDatatable("TBPM_MAIN_VIEW_GROUPS", New GetDatatableOptions(oSql, DatabaseType.ECM)) + + oStep = "TBPM_CHART" oSql = "SELECT * FROM TBPM_CHART" - BASEDATA_DT_CHARTS = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_CHART", "") + 'BASEDATA_DT_CHARTS = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_CHART", "") + BASEDATA_DT_CHARTS = Database.GetDatatable("TBPM_CHART", New GetDatatableOptions(oSql, DatabaseType.ECM)) + oStopWatch.Done() Catch ex As Exception LOGGER.Error(ex) @@ -423,13 +458,15 @@ Public Class ClassInit Try Dim oStopWatch As New RefreshHelper.SW("InitBasics2") Dim oSql = String.Format("SELECT * FROM VWPM_PROFILE_USER WHERE USER_ID = {0}", USER_ID) - BASEDATA_DT_VW_PROFILE_USER = DataASorDB.GetDatatable("DD_ECM", oSql, "VWPM_PROFILE_USER", $"USER_ID = {USER_ID}") + 'BASEDATA_DT_VW_PROFILE_USER = DataASorDB.GetDatatable("DD_ECM", oSql, "VWPM_PROFILE_USER", $"USER_ID = {USER_ID}") + BASEDATA_DT_VW_PROFILE_USER = Database.GetDatatable("VWPM_PROFILE_USER", New GetDatatableOptions(oSql, DatabaseType.ECM) With { + .FilterExpression = $"USER_ID = {USER_ID}" + }) If BASEDATA_DT_VW_PROFILE_USER.Rows.Count = 0 Then LOGGER.Warn($"no profiles for user: '{USER_USERNAME}' configured - Check SQL [{oSql}]!", False) End If - oStopWatch.Done() Catch ex As Exception LOGGER.Error(ex) @@ -442,7 +479,11 @@ Public Class ClassInit Try Dim oSql As String = "select * from tbdd_Modules where SHORT_NAME = 'PM'" Dim oDTtbdd_Modules As DataTable - oDTtbdd_Modules = DataASorDB.GetDatatable("DD_ECM", oSql, "tbdd_Modules", $" SHORT_NAME = 'PM'") + 'oDTtbdd_Modules = DataASorDB.GetDatatable("DD_ECM", oSql, "tbdd_Modules", $" SHORT_NAME = 'PM'") + oDTtbdd_Modules = Database.GetDatatable("TBDD_MODULES", New GetDatatableOptions(oSql, DatabaseType.ECM) With { + .FilterExpression = $" SHORT_NAME = 'PM'" + }) + If oDTtbdd_Modules.Rows.Count = 1 Then Try VERSION_DELIMITER = oDTtbdd_Modules.Rows(0).Item("VERSION_DELIMITER") diff --git a/app/DD_PM_WINDREAM/ClassParamRefresh.vb b/app/DD_PM_WINDREAM/ClassParamRefresh.vb index 0d5fdcf..3cad322 100644 --- a/app/DD_PM_WINDREAM/ClassParamRefresh.vb +++ b/app/DD_PM_WINDREAM/ClassParamRefresh.vb @@ -55,7 +55,8 @@ Public Class ClassParamRefresh End If Else Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "") - Dim oConString = ClassDatabase.Get_ConnectionString(CON_ID) + 'Dim oConString = ClassDatabase.Get_ConnectionString(CON_ID) + Dim oConString = Database_ECM.Get_ConnectionStringforID(CON_ID) CONNECTION_STRING_IDB = oConString Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB) diff --git a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj index 796e0c3..8373bf2 100644 --- a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj +++ b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj @@ -261,7 +261,6 @@ - @@ -292,7 +291,6 @@ Form - diff --git a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb index 6be23f2..52c9686 100644 --- a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb +++ b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb @@ -155,6 +155,8 @@ Module ModuleRuntimeVariables Public Property Database_ECM As MSSQLServer Public Property Database_IDB As MSSQLServer + Public Property Database As DatabaseWithFallback + Public Property Timer5Mins_running As Boolean = False Public Property TimerRefresh_running As Boolean = False End Module diff --git a/app/DD_PM_WINDREAM/frmKonfig.vb b/app/DD_PM_WINDREAM/frmKonfig.vb index 75deeb3..37dfd98 100644 --- a/app/DD_PM_WINDREAM/frmKonfig.vb +++ b/app/DD_PM_WINDREAM/frmKonfig.vb @@ -88,7 +88,7 @@ Public Class frmKonfig If result = MsgBoxResult.Yes Then 'ConnectionString in Anwendung speichern CONNECTION_STRING_ECM = oPlainConnectionString - ClassDatabase.Init() + 'ClassDatabase.Init() Database_ECM = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_ECM) 'Das Passwort verschlüsseln If chkbxUserAut.Checked = False Then diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index 5fcdc9a..688c249 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -1,22 +1,16 @@ -Imports DevExpress.LookAndFeel -Imports System.Globalization +Imports System.Globalization Imports DevExpress.Utils Imports DevExpress.XtraGrid.Views.Grid.ViewInfo Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid Imports DevExpress.XtraNavBar Imports DevExpress.XtraGrid.Columns -Imports DevExpress.XtraCharts -Imports DevExpress.XtraGrid.Views.Base -Imports DevExpress.XtraEditors.Controls Imports System.Threading Imports System.ComponentModel Imports System.IO -Imports System.Drawing.Imaging Imports DevExpress.XtraPrinting -Imports System.Runtime.Serialization -Imports System.Security.Cryptography -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.EDMI.API.Constants Public Class frmMain Private UserLoggedin As Integer = 0 @@ -44,7 +38,7 @@ Public Class frmMain Private allgFunk As New ClassAllgemeineFunktionen Private _Init As New ClassInit Private CurrNavBarGroup As NavBarGroup - Private DataASorDB As ClassDataASorDB + 'Private DataASorDB As ClassDataASorDB Private DT_CHECKUSER_MODULE As DataTable Private IsFilterMode As Boolean @@ -175,7 +169,7 @@ Public Class frmMain End Try Try - DataASorDB = New ClassDataASorDB + 'DataASorDB = New ClassDataASorDB bsiLicenses.Caption = "Anzahl Lizenzen: " & LICENSE_COUNT LOGGER.Debug("Initializing MainForm....") @@ -344,7 +338,11 @@ Public Class frmMain SOURCE_INIT = Init_IDB() If SOURCE_INIT = True Then Dim oSQL = $"SELECT SQL_COMMAND FROM TBDD_SQL_COMMANDS WHERE TITLE = 'PM_IDB_DOC_DATA'" - Dim DTIDB_DOC_DATA_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_SQL_COMMANDS", "TITLE = 'PM_IDB_DOC_DATA'") + 'Dim DTIDB_DOC_DATA_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_SQL_COMMANDS", "TITLE = 'PM_IDB_DOC_DATA'") + Dim DTIDB_DOC_DATA_SQL = Database.GetDatatable("TBDD_SQL_COMMANDS", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = "TITLE = 'PM_IDB_DOC_DATA'" + }) + IDB_DOC_DATA_SQL = DTIDB_DOC_DATA_SQL.Rows(0).Item("SQL_COMMAND") LOGGER.Debug($"Got the IDB_DOC_DATA_SQL..{IDB_DOC_DATA_SQL}") End If @@ -1641,7 +1639,12 @@ Public Class frmMain CURRENT_ProfilGUID = oProfileId Dim oSQL = $"select * from TBPM_PROFILE_FINAL_INDEXING where PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY [SEQUENCE]" - CURRENT_DT_FINAL_INDEXING = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_FINAL_INDEXING", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + 'CURRENT_DT_FINAL_INDEXING = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_FINAL_INDEXING", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + CURRENT_DT_FINAL_INDEXING = Database.GetDatatable("TBPM_PROFILE_FINAL_INDEXING", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "SEQUENCE" + }) + CURRENT_DT_PROFILE.Clear() Dim oExpression = $"GUID = {CURRENT_ProfilGUID}" CURRENT_DT_PROFILES.Select(oExpression).CopyToDataTable(CURRENT_DT_PROFILE, LoadOption.PreserveChanges) @@ -2185,20 +2188,24 @@ Public Class frmMain End Sub Sub LoadCURRENT_DT_PROFILES() Dim oSQL = "select * from TBPM_PROFILE where ACTIVE = 1" - CURRENT_DT_PROFILES = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE", "") + 'CURRENT_DT_PROFILES = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE", "") + CURRENT_DT_PROFILES = Database.GetDatatable("TBPM_PROFILE", New GetDatatableOptions(oSQL, DatabaseType.ECM)) End Sub Sub LoadVWPM_CONTROL_INDEX() Dim oSQL = $"SELECT * FROM VWPM_CONTROL_INDEX ORDER BY PROFIL_ID,Y_LOC, X_LOC" - DTVWCONTROLS_INDEX = DataASorDB.GetDatatable("DD_ECM", oSQL, "VWPM_CONTROL_INDEX", "") + 'DTVWCONTROLS_INDEX = DataASorDB.GetDatatable("DD_ECM", oSQL, "VWPM_CONTROL_INDEX", "") + DTVWCONTROLS_INDEX = Database.GetDatatable("VWPM_CONTROL_INDEX", New GetDatatableOptions(oSQL, DatabaseType.ECM)) End Sub Sub GetBaseData(pMode As String) Dim oStopWatch As New RefreshHelper.SW("GetBaseData") Try Dim oSQL = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','PM',{1})", USER_USERNAME, CLIENT_SELECTED) Dim DT_CHECKUSER_MODULE As DataTable - DT_CHECKUSER_MODULE = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'") - + 'DT_CHECKUSER_MODULE = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'") + DT_CHECKUSER_MODULE = Database.GetDatatable("TBDD_USER_MODULE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'PM'" + }) If pMode = "bwBasicData" Then bwBasicData.ReportProgress(10) If pMode <> "Load" Then @@ -2216,13 +2223,21 @@ Public Class frmMain End If If pMode = "bwBasicData" Then bwBasicData.ReportProgress(40) oSQL = "select * from TBPM_PROFILE_SEARCH where TYPE = 'DOC' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX" - BASEDATA_DT_PROFILES_SEARCHES_DOC = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_SEARCH", "TYPE = 'DOC'", "PROFILE_ID,TAB_INDEX") + 'BASEDATA_DT_PROFILES_SEARCHES_DOC = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_SEARCH", "TYPE = 'DOC'", "PROFILE_ID,TAB_INDEX") + BASEDATA_DT_PROFILES_SEARCHES_DOC = Database.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = "TYPE = 'DOC'", + .SortByColumn = "PROFILE_ID,TAB_INDEX" + }) If pMode = "Load" Then BASEDATA_DT_PROFILE_SEARCHES_DOC = BASEDATA_DT_PROFILES_SEARCHES_DOC.Clone() End If If pMode = "bwBasicData" Then bwBasicData.ReportProgress(50) oSQL = "select * from TBPM_PROFILE_SEARCH where TYPE = 'DOC' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX" - BASEDATA_DT_PROFILES_SEARCHES_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_SEARCH", "TYPE = 'SQL'", "PROFILE_ID,TAB_INDEX") + 'BASEDATA_DT_PROFILES_SEARCHES_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_SEARCH", "TYPE = 'SQL'", "PROFILE_ID,TAB_INDEX") + BASEDATA_DT_PROFILES_SEARCHES_SQL = Database.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = "TYPE = 'SQL'", + .SortByColumn = "PROFILE_ID,TAB_INDEX" + }) If pMode = "Load" Then BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Clone() End If @@ -2233,8 +2248,8 @@ Public Class frmMain DTVWCONTROL_INDEX = DTVWCONTROLS_INDEX.Clone() End If oSQL = $"SELECT * FROM TBPM_PROFILE_CONTROLS WHERE LEN(ISNULL(SQL_UEBERPRUEFUNG,'')) > 0 AND CTRL_TYPE <> 'BUTTON'" - DTCONTROLS_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTCONTROLS_WITH_SQL", "", "") - + 'DTCONTROLS_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTCONTROLS_WITH_SQL", "", "") + DTCONTROLS_WITH_SQL = Database.GetDatatable("DTCONTROLS_WITH_SQL", New GetDatatableOptions(oSQL, DatabaseType.ECM)) If pMode = "bwBasicData" Then bwBasicData.ReportProgress(85) If pMode = "bwBasicData" Then bwBasicData.ReportProgress(100) diff --git a/app/DD_PM_WINDREAM/frmMassValidator.vb b/app/DD_PM_WINDREAM/frmMassValidator.vb index c88e746..d64eb4a 100644 --- a/app/DD_PM_WINDREAM/frmMassValidator.vb +++ b/app/DD_PM_WINDREAM/frmMassValidator.vb @@ -5,6 +5,8 @@ Imports DD_LIB_Standards Imports DigitalData.Controls.LookupGrid Imports DigitalData.Modules.Language.Utils Imports System.IO +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.EDMI.API.Constants Public Class frmMassValidator Private DTCONTROLS As DataTable @@ -891,7 +893,10 @@ Public Class frmMassValidator Try LOGGER.Debug("Setting Values for Control [{0}]", displayboxname) - Dim oResultTable As DataTable = ClassDatabase.Return_Datatable_ConId(sqlCommand, sqlConnection) + 'Dim oResultTable As DataTable = ClassDatabase.Return_Datatable_ConId(sqlCommand, sqlConnection) + Dim oResultTable As DataTable = Database.GetDatatable(New GetDatatableOptions(sqlCommand, DatabaseType.ECM) With { + .ConnectionId = sqlConnection + }) If Not IsNothing(oResultTable) Then LOGGER.Debug("Result Table has [{0}] rows", oResultTable.Rows.Count) @@ -1017,7 +1022,12 @@ Public Class frmMassValidator Dim sql_Statement = ROW.Item(2) Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString() sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue) - Dim resultDT As DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1)) + Dim oConnectionId = ROW.Item(1) + 'Dim resultDT As DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1)) + Dim resultDT As DataTable = Database.GetDatatable(New GetDatatableOptions(sql_Statement, DatabaseType.ECM) With { + .ConnectionId = oConnectionId + }) + If resultDT.Rows.Count >= 1 Then 'Nur dediziert einen Wert zurückerhalten For Each row1 As DataRow In resultDT.Rows diff --git a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb index 83bca33..55ef034 100644 --- a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb +++ b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb @@ -166,7 +166,8 @@ Public Class frmSQL_DESIGNER Dim connectionString As String - connectionString = ClassDatabase.Get_ConnectionString(connectionId) + 'connectionString = ClassDatabase.Get_ConnectionString(connectionId) + connectionString = Database_ECM.Get_ConnectionStringforID(connectionId) If connectionString <> "" Then diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index 0c03354..0c99675 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -8,6 +8,8 @@ Imports DigitalData.Controls.LookupGrid Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid Imports DigitalData.Modules.Language.Utils +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.EDMI.API.Constants Public Class frmValidator ''' @@ -43,7 +45,7 @@ Public Class frmValidator Private Property WD_Search As String Private Property finalProfile As Boolean Private Property Move2Folder As String - Private Property DataASorDB As ClassDataASorDB + 'Private Property DataASorDB As ClassDataASorDB Private Property allgFunk As New ClassAllgemeineFunktionen 'speichert die DocumentDaten @@ -111,7 +113,7 @@ Public Class frmValidator Try LOGGER.Debug("###frmValidation_Load###") - DataASorDB = New ClassDataASorDB + 'DataASorDB = New ClassDataASorDB PMDelimiter = "~" Override = False @@ -481,14 +483,20 @@ Public Class frmValidator Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") oDataResultCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND") oDataResultCommand = clsPatterns.ReplaceAllValues(oDataResultCommand, PanelValidatorControl, True) - oDatatableDataResult = ClassDatabase.Return_Datatable_ConId(oDataResultCommand, oConID, "Load_Additional_Searches1") + 'oDatatableDataResult = ClassDatabase.Return_Datatable_ConId(oDataResultCommand, oConID, "Load_Additional_Searches1") + oDatatableDataResult = Database.GetDatatable(New GetDatatableOptions(oDataResultCommand, DatabaseType.ECM) With { + .ConnectionId = oConID + }) End If If BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then 'Check whether DocData is there Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("CONN_ID") oDocResultCommand = BASEDATA_DT_PROFILE_SEARCHES_DOC.Rows(0).Item("SQL_COMMAND") oDocResultCommand = clsPatterns.ReplaceAllValues(oDocResultCommand, PanelValidatorControl, True) - oDatatableDocResult = ClassDatabase.Return_Datatable_ConId(oDocResultCommand, oConID, "Load_Additional_Searches2") + 'oDatatableDocResult = ClassDatabase.Return_Datatable_ConId(oDocResultCommand, oConID, "Load_Additional_Searches2") + oDatatableDocResult = Database.GetDatatable(New GetDatatableOptions(oDocResultCommand, DatabaseType.ECM) With { + .ConnectionId = oConID + }) End If Dim oDataResultsExist As Boolean = False @@ -628,7 +636,10 @@ Public Class frmValidator Continue For End If 'sql = ClassPatterns.ReplaceInternalValues(sqlStatement) - Dim oDTContent As DataTable = ClassDatabase.Return_Datatable_ConId(oSQLStatement, oConnectionId, $"LoadSQLData - pControlId: {pControlId}") + 'Dim oDTContent As DataTable = ClassDatabase.Return_Datatable_ConId(oSQLStatement, oConnectionId, $"LoadSQLData - pControlId: {pControlId}") + Dim oDTContent As DataTable = Database.GetDatatable(New GetDatatableOptions(oSQLStatement, DatabaseType.ECM) With { + .ConnectionId = oConnectionId + }) If IsNothing(oDTContent) Then LOGGER.Warn($"SQL-Query [{oSQLStatement}] for control {control.Name} is invalid.") @@ -732,13 +743,25 @@ Public Class frmValidator Try PanelValidatorControl.Controls.Clear() Dim oSQL = $"SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{USER_LANGUAGE}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, * FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY Y_LOC, X_LOC" - DT_CONTROLS = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_CONTROLS_LANGUAGE", $"LANGUAGE = '{USER_LANGUAGE}' AND PROFIL_ID = {CURRENT_ProfilGUID}", "Y_LOC, X_LOC") + 'DT_CONTROLS = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_CONTROLS_LANGUAGE", $"LANGUAGE = '{USER_LANGUAGE}' AND PROFIL_ID = {CURRENT_ProfilGUID}", "Y_LOC, X_LOC") + DT_CONTROLS = Database.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"LANGUAGE = '{USER_LANGUAGE}' AND PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "Y_LOC, X_LOC" + }) oSQL = $"SELECT T.* from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE" - DT_COLUMNS_GRID = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_CONTROL_TABLE", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + 'DT_COLUMNS_GRID = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_CONTROLS_LANGUAGE", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + DT_COLUMNS_GRID = Database.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "SEQUENCE" + }) oSQL = "SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.CONNECTION_ID, T.SQL_COMMAND, T.SPALTENNAME,T.FORMATTYPE,T.FORMATSTRING from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = " & CURRENT_ProfilGUID & " AND LEN(T.SQL_COMMAND) > 0 ORDER BY T.SEQUENCE" - DT_COLUMNS_GRID_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + 'DT_COLUMNS_GRID_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + DT_COLUMNS_GRID_WITH_SQL = Database.GetDatatable("DTGRID_SQL_DEFINITION", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "SEQUENCE" + }) oSQL = " SELECT @@ -761,7 +784,11 @@ Public Class frmValidator T.SQL_COMMAND LIKE '%{#CTRL%' ORDER BY T.SEQUENCE" - DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + 'DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER = Database.GetDatatable("DTGRID_SQL_DEFINITION", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "SEQUENCE" + }) Dim oTabIndexCounter As Integer = 0 @@ -837,7 +864,11 @@ Public Class frmValidator LOGGER.Debug("SQL HasOnlySimplePatterns!") oSQL = clsPatterns.ReplaceInternalValues(oSQL) oSQL = clsPatterns.ReplaceControlValues(oSQL, PanelValidatorControl, True) - Dim oDT As DataTable = ClassDatabase.Return_Datatable_ConId(oSQL, oCONID, $"CreateControls - oControlID: {oControlID}") + 'Dim oDT As DataTable = ClassDatabase.Return_Datatable_ConId(oSQL, oCONID, $"CreateControls - oControlID: {oControlID}") + Dim oDT As DataTable = Database.GetDatatable(New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .ConnectionId = oCONID + }) + If Not IsNothing(oDT) Then For Each oRow As DataRow In oDT.Rows oComboBox.Items.Add(oRow.Item(0)) @@ -1107,15 +1138,17 @@ Public Class frmValidator End If Dim oTextBox As TextBox = sender - If oTextBox.Text <> String.Empty And me_closing = False And _Indexe_Loaded = True And oTextBox.Height <25 Then + If oTextBox.Text <> String.Empty And me_closing = False And _Indexe_Loaded = True And oTextBox.Height < 25 Then If (e.KeyCode = Keys.Return) Or (e.KeyCode = Keys.Tab) Or (e.KeyCode = Keys.Enter) Then Try Dim CONTROL_ID = DirectCast(oTextBox.Tag, ClassControlCreator.ControlMetadata).Guid Dim oSql = String.Format("SELECT NAME, CONNECTION_ID, SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, oTextBox.Name) Dim DTCONTROLS_UEBP As DataTable - DTCONTROLS_UEBP = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_PROFILE_CONTROLS_SQL_UEP", $"PROFIL_ID = {CURRENT_ProfilGUID} AND SQL_UEBERPRUEFUNG LIKE '%{oTextBox.Name}%'") - + 'DTCONTROLS_UEBP = DataASorDB.GetDatatable("DD_ECM", oSql, "TBPM_PROFILE_CONTROLS_SQL_UEP", $"PROFIL_ID = {CURRENT_ProfilGUID} AND SQL_UEBERPRUEFUNG LIKE '%{oTextBox.Name}%'") + DTCONTROLS_UEBP = Database.GetDatatable("TBPM_PROFILE_CONTROLS_SQL_UEP", New GetDatatableOptions(oSql, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID} AND SQL_UEBERPRUEFUNG LIKE '%{oTextBox.Name}%'" + }) If Not IsNothing(DTCONTROLS_UEBP) AndAlso DTCONTROLS_UEBP.Rows.Count > 0 Then For Each oRow As DataRow In DTCONTROLS_UEBP.Rows @@ -1303,16 +1336,24 @@ Public Class frmValidator Try Dim CONTROL_ID = DirectCast(dgv.Tag, ClassControlCreator.ControlMetadata).Guid Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name) - Dim DT As DataTable = Database_ECM.GetDatatable(sql) ', "onDGVRowValidating") + 'Dim DT As DataTable = Database_ECM.GetDatatable(sql) ', "onDGVRowValidating") + Dim DT As DataTable = Database.GetDatatable("TBPM_PROFILE_CONTROLS", New GetDatatableOptions(sql, DatabaseType.ECM) With { + .FilterExpression = String.Format("CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name) + }) + If Not IsNothing(DT) And DT.Rows.Count > 0 Then For Each ROW As DataRow In DT.Rows Try - Dim displayboxname = ROW.Item(0).ToString - If Not IsDBNull(ROW.Item(1)) And Not IsDBNull(ROW.Item(2)) Then - Dim sql_Statement = ROW.Item(2) + Dim displayboxname = ROW.Item("NAME").ToString + If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then + Dim sql_Statement = ROW.Item("SQL_UEBERPRUEFUNG") Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString() sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue) - Dim resultDT As DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1), $"oControlID[{CONTROL_ID}]") + 'Dim resultDT As DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1), $"oControlID[{CONTROL_ID}]") + Dim resultDT As DataTable = Database.GetDatatable(New GetDatatableOptions(sql_Statement, DatabaseType.ECM) With { + .ConnectionId = ROW.Item("CONNECTION_ID") + }) + If resultDT.Rows.Count >= 1 Then 'Nur dediziert einen Wert zurückerhalten For Each row1 As DataRow In resultDT.Rows @@ -1450,7 +1491,10 @@ Public Class frmValidator Dim oSqlCommand = NotNull(oRow.Item("SET_CONTROL_DATA"), String.Empty) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) - Dim oControlDataResult As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId, $"SetControlValues - CTRLID {oControlID}") + 'Dim oControlDataResult As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId, $"SetControlValues - CTRLID {oControlID}") + Dim oControlDataResult As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oConnectionId + }) If oControlDataResult Is Nothing Then Exit Sub @@ -1519,7 +1563,7 @@ Public Class frmValidator oControl.Text = oCaption Else oControl.Text &= oCaption - End If + End If Dim oBackColor Try @@ -1598,7 +1642,10 @@ Public Class frmValidator Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _dependingControl_in_action = True - Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"LookupControl_DependingControls - oControlID: {oControlID}") + 'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"LookupControl_DependingControls - oControlID: {oControlID}") + Dim oDTDEPENDING_RESULT As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oRowDependingControl.Item("CONNECTION_ID") + }) Try Dim oFound As Boolean = False @@ -1719,7 +1766,11 @@ Public Class frmValidator Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _dependingControl_in_action = True - Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"CheckBox_DependingControls - oControlID: {oControlID}") + 'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"CheckBox_DependingControls - oControlID: {oControlID}") + Dim oDTDEPENDING_RESULT As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oRowDependingControl.Item("CONNECTION_ID") + }) + Try Dim oFound As Boolean = False 'Dim oDependingLookup As LookupControl3 = pnldesigner.Controls.Find(oDEPENDING_CtrlName, False).FirstOrDefault() @@ -1837,10 +1888,11 @@ Public Class frmValidator _dependingColumn_in_action = True Try + 'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"LookupControl_DependingColumn - oDEPENDING_CONTROL_ID: {oDEPENDING_CONTROL_ID}") + Dim oDTDEPENDING_RESULT As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oCONNID + }) - - - Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"LookupControl_DependingColumn - oDEPENDING_CONTROL_ID: {oDEPENDING_CONTROL_ID}") If Not IsNothing(oDTDEPENDING_RESULT) Then LOGGER.Debug($"Trying to fill the DropDown (DC) for ControlID [{oDEPENDING_CONTROL_ID}]..RowCount: [{oDTDEPENDING_RESULT.Rows.Count}] ") For Each oControl As Control In PanelValidatorControl.Controls @@ -1881,7 +1933,11 @@ Public Class frmValidator _dependingColumn_in_action = True Try - Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"CheckBox_DependingColumn - oDEPENDING_CONTROL_ID: {oDEPENDING_CONTROL_ID}") + 'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"CheckBox_DependingColumn - oDEPENDING_CONTROL_ID: {oDEPENDING_CONTROL_ID}") + Dim oDTDEPENDING_RESULT As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oCONNID + }) + If Not IsNothing(oDTDEPENDING_RESULT) Then LOGGER.Debug($"Trying to fill the DropDown (DC) for ControlID [{oDEPENDING_CONTROL_ID}]..RowCount: [{oDTDEPENDING_RESULT.Rows.Count}] ") For Each oControl As Control In PanelValidatorControl.Controls @@ -1911,7 +1967,10 @@ Public Class frmValidator Try Dim CONTROL_ID = DirectCast(oCombobox.Tag, ClassControlCreator.ControlMetadata).Guid Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, oCombobox.Name) - Dim DT As DataTable = Database_ECM.GetDatatable(sql) ', "OnCmbselectedIndex") + 'Dim DT As DataTable = Database_ECM.GetDatatable(sql) ', "OnCmbselectedIndex") + Dim DT As DataTable = Database.GetDatatable("TBPM_PROFILE_CONTROLS", New GetDatatableOptions(sql, DatabaseType.ECM) With { + .FilterExpression = String.Format("CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, oCombobox.Name) + }) If Not IsNothing(DT) And DT.Rows.Count > 0 Then If _dependingControl_in_action = True Then Exit Sub @@ -1982,7 +2041,16 @@ Public Class frmValidator Dim oSqlCommand = IIf(IsDBNull(oRowEnablingControl.Item("SQL_ENABLE")), "", oRowEnablingControl.Item("SQL_ENABLE")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _dependingControl_in_action = True - Dim oENABLERESULT As Boolean = ClassDatabase.Execute_Scalar_ConID(oSqlCommand, oRowEnablingControl.Item("CONNECTION_ID"), $"Controls2beEnabled - oENABLE_CTRLID: {oENABLE_GUID}") + + Dim oConnectionId As Integer = oRowEnablingControl.Item("CONNECTION_ID") + Dim oResult = _Client.GetScalarValueFromIDB(oSqlCommand, oConnectionId) + Dim oENABLERESULT As Boolean = False + + If oResult.OK Then + oENABLERESULT = oResult.Scalar + End If + 'Dim oENABLERESULT As Boolean = ClassDatabase.Execute_Scalar_ConID(oSqlCommand, oRowEnablingControl.Item("CONNECTION_ID"), $"Controls2beEnabled - oENABLE_CTRLID: {oENABLE_GUID}") + Try Dim oFound As Boolean = False @@ -2055,7 +2123,16 @@ Public Class frmValidator Dim oConID = oRowEnablingControl.Item("SQL_ENABLE_ON_LOAD_CONID") If Not IsDBNull(oConID) Then oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) - Dim oENABLERESULT As Boolean = ClassDatabase.Execute_Scalar_ConID(oSqlCommand, oRowEnablingControl.Item("SQL_ENABLE_ON_LOAD_CONID"), $"Controls2B_EnDisabled_on_Load - oENABLE_CTRLID: {oENABLE_GUID}") + + Dim oConnectionId As Integer = oRowEnablingControl.Item("CONNECTION_ID") + Dim oResult = _Client.GetScalarValueFromIDB(oSqlCommand, oConnectionId) + Dim oENABLERESULT As Boolean = False + + If oResult.OK Then + oENABLERESULT = oResult.Scalar + End If + 'Dim oENABLERESULT As Boolean = ClassDatabase.Execute_Scalar_ConID(oSqlCommand, oRowEnablingControl.Item("SQL_ENABLE_ON_LOAD_CONID"), $"Controls2B_EnDisabled_on_Load - oENABLE_CTRLID: {oENABLE_GUID}") + Try LOGGER.Debug($"oENABLERESULT [{oENABLERESULT}]...") oControl.Enabled = oENABLERESULT @@ -2079,7 +2156,10 @@ Public Class frmValidator Try LOGGER.Debug("Setting Values for Control [{0}]", displayboxname) - Dim oResultTable As DataTable = ClassDatabase.Return_Datatable_ConId(sqlCommand, sqlConnection) + 'Dim oResultTable As DataTable = ClassDatabase.Return_Datatable_ConId(sqlCommand, sqlConnection) + Dim oResultTable As DataTable = Database.GetDatatable(New GetDatatableOptions(sqlCommand, DatabaseType.ECM) With { + .ConnectionId = sqlConnection + }) If Not IsNothing(oResultTable) Then LOGGER.Debug("Result Table has [{0}] rows", oResultTable.Rows.Count) @@ -2162,7 +2242,9 @@ Public Class frmValidator Return True End If If check.ToString.Length > 0 And dr.Item("INDEX_NAME") <> "DD PM-ONLY FOR DISPLAY" Then - Dim cs As String = ClassDatabase.Get_ConnectionString(dr.Item("CONNECTION_ID")) + 'Dim cs As String = ClassDatabase.Get_ConnectionString(dr.Item("CONNECTION_ID")) + Dim cs As String = Database_ECM.Get_ConnectionStringforID(dr.Item("CONNECTION_ID")) + If allgFunk.CheckValue_Exists(dr.Item("SQL_UEBERPRUEFUNG"), "@Eingabe", control.Text, dr.Item("TYP"), cs, CURRENT_ProfilGUID) = True Then Return True Else @@ -2323,7 +2405,6 @@ Public Class frmValidator Catch ex As Exception LOGGER.Error(ex) End Try - End Sub @@ -3408,7 +3489,11 @@ Public Class frmValidator oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) Try - Dim oDTRESULT_FOR_COLUMN As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"oDEPENDING_CTRL_ID: {oDEPENDING_CTRL_ID}") + 'Dim oDTRESULT_FOR_COLUMN As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oCONNID, $"oDEPENDING_CTRL_ID: {oDEPENDING_CTRL_ID}") + Dim oDTRESULT_FOR_COLUMN As DataTable = Database.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { + .ConnectionId = oCONNID + }) + If Not IsNothing(oDTRESULT_FOR_COLUMN) Then LOGGER.Debug($"Trying to create a DropDown(FIV) for CONTROL-ID [{oDEPENDING_CTRL_ID}] - RowCount: [{oDTRESULT_FOR_COLUMN.Rows.Count}] ") For Each oControl As Control In PanelValidatorControl.Controls @@ -3722,7 +3807,11 @@ Public Class frmValidator Try Dim oSQL = $"SELECT * FROM TBPM_PROFILE_FINAL_INDEXING WHERE PROFIL_ID = {CURRENT_ProfilGUID} AND ACTIVE = 1 ORDER BY SEQUENCE" Dim oDTFinalIndexing As DataTable - oDTFinalIndexing = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_FINAL_INDEXING", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + 'oDTFinalIndexing = DataASorDB.GetDatatable("DD_ECM", oSQL, "TBPM_PROFILE_FINAL_INDEXING", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") + oDTFinalIndexing = Database.GetDatatable("TBPM_PROFILE_FINAL_INDEXING", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { + .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", + .SortByColumn = "PROFILE_ID,TAB_INDEX" + }) If oDTFinalIndexing?.Rows.Count > 0 Then 'Jetzt finale Indexe setzen @@ -3749,7 +3838,13 @@ Public Class frmValidator ItemWorked = False End If If Not IsNothing(oSQLCommand) Then - Dim oResultfromSQL = ClassDatabase.Execute_Scalar_ConID(oSQLCommand, oConnectionID, "FinalIndex - oGUID: {oGUID}") + Dim oDBResult = _Client.GetScalarValueFromIDB(oSQLCommand, oConnectionID) + Dim oResultfromSQL As Object = "" + + If oDBResult.OK Then + oResultfromSQL = oDBResult.Scalar + End If + 'Dim oResultfromSQL = ClassDatabase.Execute_Scalar_ConID(oSQLCommand, oConnectionID, "FinalIndex - oGUID: {oGUID}") If Not IsNothing(oResultfromSQL) Then LOGGER.Debug($"oResultfromSQL is [{oResultfromSQL.ToString}]") diff --git a/app/DD_PM_WINDREAM/frmValidatorSearch.vb b/app/DD_PM_WINDREAM/frmValidatorSearch.vb index b6dcc87..58e181e 100644 --- a/app/DD_PM_WINDREAM/frmValidatorSearch.vb +++ b/app/DD_PM_WINDREAM/frmValidatorSearch.vb @@ -7,6 +7,8 @@ Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraTab +Imports DigitalData.Modules.EDMI.API.Constants +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback Public Class frmValidatorSearch @@ -136,7 +138,11 @@ Public Class frmValidatorSearch myGridControl = GridControlSearch5 End Select myGridControl.ContextMenuStrip = ContextMenuStripSQL - Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_ConId(SQLCommand, ConID) + 'Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_ConId(SQLCommand, ConID) + Dim oDatatable As DataTable = Database.GetDatatable(New GetDatatableOptions(SQLCommand, DatabaseType.ECM) With { + .ConnectionId = ConID + }) + If Not IsNothing(oDatatable) Then XtraTabControlSQL.TabPages(TabIndex).Text = $"{TabCaption} ({oDatatable.Rows.Count})" Select Case TabIndex @@ -195,7 +201,11 @@ Public Class frmValidatorSearch myGridview = GridViewDocSearch5 End Select myGridControl.ContextMenuStrip = ContextMenuStripWMFile - Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_ConId(SQLCommand, ConID) + 'Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_ConId(SQLCommand, ConID) + Dim oDatatable As DataTable = Database.GetDatatable(New GetDatatableOptions(SQLCommand, DatabaseType.ECM) With { + .ConnectionId = ConID + }) + If Not IsNothing(oDatatable) Then XtraTabControlDocs.TabPages(TabIndex).Text = $"{TabCaption} ({oDatatable.Rows.Count})" clsWMDocGrid.DTDocuments = oDatatable @@ -478,8 +488,8 @@ Public Class frmValidatorSearch End If End If - Else - tslblDocID.Text = "DocRow not selected" + Else + tslblDocID.Text = "DocRow not selected" ToolStripDropDownButtonFile.Enabled = False End If End Sub