diff --git a/.gitignore b/.gitignore index 86ec716..2589f76 100644 --- a/.gitignore +++ b/.gitignore @@ -155,3 +155,4 @@ $RECYCLE.BIN/ # Mac desktop service store files .DS_Store /.vs/Global_Indexer/v15/Server/sqlite3 +/.vs/Global_Indexer/v16/Server/sqlite3 diff --git a/Global_Indexer.sln b/Global_Indexer.sln index d75a80d..2ef64de 100644 --- a/Global_Indexer.sln +++ b/Global_Indexer.sln @@ -1,12 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26228.9 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29728.190 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Global_Indexer", "Global_Indexer\Global_Indexer.vbproj", "{7474B1D2-49A4-4D12-B544-C8674D3F7231}" EndProject Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupWix", "SetupWix\SetupWix.wixproj", "{5BF6646D-6F46-45E5-8806-8783F030F311}" EndProject +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupVS19", "SetupVS19\SetupVS19.wixproj", "{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CD_ROM|Any CPU = CD_ROM|Any CPU @@ -76,8 +78,39 @@ Global {5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|Mixed Platforms.Build.0 = Release|x86 {5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|x86.ActiveCfg = Release|x86 {5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|x86.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Any CPU.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Any CPU.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Mixed Platforms.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|x86.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|x86.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Debug|Any CPU.ActiveCfg = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Debug|x86.ActiveCfg = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Debug|x86.Build.0 = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|Any CPU.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|Any CPU.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|Mixed Platforms.Build.0 = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|x86.ActiveCfg = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.DVD-5|x86.Build.0 = Debug|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Release|Any CPU.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Release|Mixed Platforms.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Release|x86.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.Release|x86.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|Any CPU.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|Any CPU.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|Mixed Platforms.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|Mixed Platforms.Build.0 = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|x86.ActiveCfg = Release|x86 + {54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8909143E-612A-45CA-8ED6-D64A43E8C656} + EndGlobalSection EndGlobal diff --git a/Global_Indexer/ClassDatabase.vb b/Global_Indexer/ClassDatabase.vb index 5e4a223..dbf389b 100644 --- a/Global_Indexer/ClassDatabase.vb +++ b/Global_Indexer/ClassDatabase.vb @@ -22,6 +22,46 @@ Public Class ClassDatabase End Try End Function + 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 = ClassDatabase.Return_Datatable("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 Return_Datatable(sql_command As String, Optional userInput As Boolean = False) Try Dim SQLconnect As New SqlConnection diff --git a/Global_Indexer/ClassPatterns.vb b/Global_Indexer/ClassPatterns.vb new file mode 100644 index 0000000..f78be65 --- /dev/null +++ b/Global_Indexer/ClassPatterns.vb @@ -0,0 +1,369 @@ +Imports System.Text.RegularExpressions +Imports WINDREAMLib + +''' +''' Defines common Functions for Checking for and replacing placeholders. +''' This Class also includes a child class `Pattern` for passing around Patterns. +''' +''' The format of all placeholders is: +''' {#TYPE#VALUE} +''' +''' Some Examples: +''' {#INT#USERNAME} +''' {#CTRL#CMB_2} +''' {#WMI#String 39} +''' +Public Class ClassPatterns + ' Complex patterns that rely on a datasource like a Database or Windream + Public Const PATTERN_WMI = "WMI" + Public Const PATTERN_IDBA = "IDBA" + Public Const PATTERN_CTRL = "CTRL" + ' Simple patterns that only rely on .NET functions + Public Const PATTERN_INT = "INT" + ' Simple patterns that rely on Data from the TBDD_USER table + Public Const PATTERN_USER = "USER" + + Public Const USER_VALUE_PRENAME = "PRENAME" + Public Const USER_VALUE_SURNAME = "SURNAME" + Public Const USER_VALUE_EMAIL = "EMAIL" + Public Const USER_VALUE_SHORTNAME = "SHORTNAME" + Public Const USER_VALUE_LANGUAGE = "LANGUAGE" + Public Const USER_VALUE_USER_ID = "USER_ID" + Public Const USER_VALUE_PROFILE_ID = "PROFILE_ID" + + Public Const INT_VALUE_USERNAME = "USERNAME" + Public Const INT_VALUE_MACHINE = "MACHINE" + Public Const INT_VALUE_DOMAIN = "DOMAIN" + Public Const INT_VALUE_DATE = "DATE" + + Public Const MAX_TRY_COUNT = 500 + + Private Shared regex As Regex = New Regex("{#(\w+)#([\w\s_-]+)}+") + Private Shared allPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA, PATTERN_USER, PATTERN_INT} + Private Shared complexPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA} + Private Shared simplePatterns As New List(Of String) From {PATTERN_USER, PATTERN_INT} + + ''' + ''' Wraps a pattern-type and -value in the common format: {#type#value} + ''' + Public Shared Function WrapPatternValue(type As String, value As String) As String + Return New Pattern(type, value).ToString + End Function + + + Public Shared Function ReplaceAllValues(input As String, panel As Panel, document As WMObject, prename As Object, surname As Object, shortname As Object, language As Object, email As Object, userId As Object, profileId As Object) As String + Try + Dim result = input + LOGGER.Debug($"inputString BEFORE replacing: [{result}]") + result = ReplaceInternalValues(result) + result = ReplaceControlValues(result, panel) + If Not IsNothing(document) Then result = ReplaceWindreamIndicies(result, document) + 'result = ReplaceIDBAttributes(result) + result = ReplaceUserValues(result, prename, surname, shortname, language, email, userId, profileId) + LOGGER.Debug($"inputString AFTER replacing: [{result}]") + Return result + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Error in ReplaceAllValues:" & ex.Message) + End Try + End Function + + Public Shared Function ReplaceInternalValues(input As String) As String + Try + Dim result = input + + ' Replace Username(s) + While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_USERNAME) + result = ReplacePattern(result, PATTERN_INT, Environment.UserName) + End While + + ' Replace Machinename(s) + While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_MACHINE) + result = ReplacePattern(result, PATTERN_INT, Environment.MachineName) + End While + + ' Replace Domainname(s) + While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_DOMAIN) + result = ReplacePattern(result, PATTERN_INT, Environment.UserDomainName) + End While + + ' Replace CurrentDate(s) + While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_DATE) + result = ReplacePattern(result, PATTERN_INT, Now.ToShortDateString) + End While + LOGGER.Debug("sql after ReplaceInternalValues: " & input) + Return result + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Error in ReplaceInternalValues:" & ex.Message) + End Try + End Function + + Public Shared Function ReplaceUserValues(input As String, prename As Object, surname As Object, shortname As Object, language As String, email As Object, userId As Object, profileId As Object) As String + Try + Dim result = input + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_PRENAME) + result = ReplacePattern(result, PATTERN_USER, prename) + End While + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_USER_ID) + result = ReplacePattern(result, PATTERN_USER, userId) + End While + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_SURNAME) + result = ReplacePattern(result, PATTERN_USER, surname) + End While + If IsDBNull(shortname) Then + shortname = "" + End If + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_SHORTNAME) + result = ReplacePattern(result, PATTERN_USER, shortname) + End While + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_LANGUAGE) + result = ReplacePattern(result, PATTERN_USER, language) + End While + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_EMAIL) + result = ReplacePattern(result, PATTERN_USER, email) + End While + + While ContainsPatternAndValue(result, PATTERN_USER, USER_VALUE_PROFILE_ID) + result = ReplacePattern(result, PATTERN_USER, profileId) + End While + LOGGER.Debug("sql after ReplaceUserValues: " & input) + Return result + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Error in ReplaceUserValues:" & ex.Message) + End Try + End Function + + Public Shared Function ReplaceControlValues(input As String, panel As Panel) As String + Try + Dim result = input + Dim oTryCounter = 0 + + While ContainsPattern(result, PATTERN_CTRL) + If oTryCounter > MAX_TRY_COUNT Then + Throw New Exception($"Max tries in ReplaceControlValues exceeded - Result so far [{result}].") + End If + + Dim controlName As String = GetNextPattern(result, PATTERN_CTRL).Value + Dim control As Control = panel.Controls.Find(controlName, False).FirstOrDefault() + + If control IsNot Nothing Then + Dim value As String = control.Text + result = ReplacePattern(result, PATTERN_CTRL, value) + End If + + oTryCounter += 1 + End While + LOGGER.Debug("sql after ReplaceControlValues: " & input) + Return result + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Error in ReplaceControlValues:" & ex.Message) + End Try + End Function + + Public Shared Function ReplaceWindreamIndicies(input As String, document As WMObject) As String + Try + Dim result = input + Dim oTryCounter As Integer = 0 + While ContainsPattern(result, PATTERN_WMI) + + Dim indexName As String = GetNextPattern(result, PATTERN_WMI).Value + Dim oWMValue = document.GetVariableValue(indexName) + If IsNothing(oWMValue) And oTryCounter = MAX_TRY_COUNT Then + LOGGER.Warn("Exit from ReplaceWindreamIndicies as oWMValue is still nothing and oTryCounter is 500!") + Throw New Exception("Max tries in ReplaceWindreamIndicies exceeded.") + + End If + If oWMValue IsNot Nothing Then + result = ReplacePattern(result, PATTERN_WMI, oWMValue) + End If + oTryCounter += 100 + End While + LOGGER.Debug("sql after ReplaceWindreamIndicies: " & input) + Return result + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Error in ReplaceWindreamIndicies:" & ex.Message) + End Try + End Function + 'Public Shared Function ReplaceIDBAttributes(input As String) As String + ' Try + ' Dim result = input + ' Dim oTryCounter As Integer = 0 + ' While ContainsPattern(result, PATTERN_IDBA) + + ' Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value + ' Dim oIDBValue + ' If indexName = "ObjectID" Then + ' oIDBValue = CURRENT_DOC_ID + ' ElseIf indexName = "OBJID" Then + ' oIDBValue = CURRENT_DOC_ID + ' ElseIf indexName = "DocID" Then + ' oIDBValue = CURRENT_DOC_ID + ' Else + + ' oIDBValue = IDBData.GetVariableValue(indexName) + ' End If + + ' If IsNothing(oIDBValue) And oTryCounter = MAX_TRY_COUNT Then + ' LOGGER.Warn("Exit from ReplaceIDBIndicies as Value is still nothing and oTryCounter is 500!") + ' Throw New Exception("Max tries in ReplaceIDBAttributes exceeded.") + + ' End If + ' If oIDBValue IsNot Nothing Then + ' Dim oReplaceValue = "{" + $"#{PATTERN_IDBA}#{indexName}" + "}" + ' result = result.Replace(oReplaceValue, oIDBValue) + ' 'result = ReplacePattern(result, oReplaceValue, oIDBValue) + ' End If + ' oTryCounter += 100 + ' End While + ' LOGGER.Debug("sql after ReplaceIDBAttributes: " & input) + ' Return result + ' Catch ex As Exception + ' LOGGER.Error(ex) + ' LOGGER.Info("Error in ReplaceIDBAttributes:" & ex.Message) + ' End Try + 'End Function + + Private Shared Function ContainsPattern(input As String, type As String) As String + Dim elements As MatchCollection = regex.Matches(input) + + For Each element As Match In elements + Dim t As String = element.Groups(1).Value + + If t = type Then + Return True + End If + Next + + Return False + End Function + + Public Shared Function GetNextPattern(input As String, type As String) As Pattern + Dim elements As MatchCollection = regex.Matches(input) + + For Each element As Match In elements + ' Pattern in input + Dim t As String = element.Groups(1).Value + Dim v As String = element.Groups(2).Value + + If t = type Then + Return New Pattern(t, v) + End If + Next + + Return Nothing + End Function + + Public Shared Function GetAllPatterns(input As String) As List(Of Pattern) + Dim elements As MatchCollection = regex.Matches(input) + Dim results As New List(Of Pattern) + + For Each element As Match In elements + ' Pattern in input + Dim t As String = element.Groups(1).Value + Dim v As String = element.Groups(2).Value + + results.Add(New Pattern(t, v)) + Next + + Return results + End Function + + Public Shared Function ReplacePattern(input As String, type As String, replacement As String) As String + Dim elements As MatchCollection = regex.Matches(input) + + If IsNothing(replacement) Then + Return input + End If + + For Each element As Match In elements + ' if group 1 contains the 'pattern' the replace whole group with 'replacement' + ' and return it + If element.Groups(1).Value = type Then + Return Regex.Replace(input, element.Groups(0).Value, replacement) + End If + Next + + ' no replacement made + Return input + End Function + + Private Shared Function ContainsPatternAndValue(input As String, type As String, value As String) As Boolean + Dim elements As MatchCollection = regex.Matches(input) + + For Each element As Match In elements + ' Pattern in input + Dim t As String = element.Groups(1).Value + Dim v As String = element.Groups(2).Value + + If t = type And v = value Then + Return True + End If + Next + + Return False + End Function + + Public Shared Function HasAnyPatterns(input) As Boolean + Return allPatterns.Any(Function(p) + Return HasPattern(input, p) + End Function) + End Function + + Public Shared Function HasOnlySimplePatterns(input As String) As Boolean + Return Not HasComplexPatterns(input) + End Function + + Public Shared Function HasComplexPatterns(input As String) As Boolean + Return complexPatterns.Any(Function(p) + Return HasPattern(input, p) + End Function) + End Function + + Public Shared Function HasPattern(input As String, type As String) As Boolean + Dim matches = regex.Matches(input) + + For Each match As Match In matches + For Each group As Group In match.Groups + If group.Value = type Then + Return True + End If + Next + Next + + Return False + End Function + + Public Class Pattern + Public ReadOnly Property Type As String + Public ReadOnly Property Value As String + + Public Sub New(type As String, value As String) + Me.Type = type + Me.Value = value + End Sub + + Public Sub New(stringRepresentation As String) + Dim elements As MatchCollection = regex.Matches(stringRepresentation) + Dim first As Match = elements.Item(0) + + Dim t As String = first.Groups(1).Value + Dim v As String = first.Groups(2).Value + + Type = t + Value = v + End Sub + + Public Overrides Function ToString() As String + Return $"{{#{Type}#{Value}}}" + End Function + End Class +End Class \ No newline at end of file diff --git a/Global_Indexer/Global_Indexer.vbproj b/Global_Indexer/Global_Indexer.vbproj index 38c23fb..0691150 100644 --- a/Global_Indexer/Global_Indexer.vbproj +++ b/Global_Indexer/Global_Indexer.vbproj @@ -243,6 +243,7 @@ + @@ -350,6 +351,12 @@ Form + + frmSQL_DESIGNER.vb + + + Form + frmStart.vb @@ -510,6 +517,9 @@ frmSQL_Admin.vb + + frmSQL_DESIGNER.vb + frmStart.vb diff --git a/Global_Indexer/frmAdministration.vb b/Global_Indexer/frmAdministration.vb index d03882a..25c67d3 100644 --- a/Global_Indexer/frmAdministration.vb +++ b/Global_Indexer/frmAdministration.vb @@ -540,8 +540,35 @@ Public Class frmAdministration Private Sub btnSQLView_Click(sender As Object, e As EventArgs) Handles btnSQLView.Click Save_IndexMan() - CURRENT_INDEXMAN = GUIDTextBox1.Text - frmSQLSuggestion.ShowDialog() + 'CURRENT_INDEXMAN = GUIDTextBox1.Text + 'frmSQLSuggestion.ShowDialog() + + Dim oIndexGuid As Integer = GUIDTextBox1.Text + Dim oDocTypeGuid As Integer = DOKART_GUIDTextBox.Text + Dim oSQLCommand = "" + + Try + Dim oSQL = $"SELECT SQL_RESULT, CONNECTION_ID FROM TBDD_INDEX_MAN WHERE GUID = {oIndexGuid}" + Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL) + Dim oRow = oDatatable.Rows.Item(0) + + Dim oForm As New frmSQL_DESIGNER(oIndexGuid, oDocTypeGuid) With { + .SQLCommand = oRow.Item("SQL_RESULT"), + .ConnectionID = oRow.Item("CONNECTION_ID") + } + + If oForm.ShowDialog() = DialogResult.OK Then + + oSQLCommand = oForm.SQLCommand.Replace("'", "''") + Dim oConnectionId = oForm.SQLConnectionId + + oSQL = $"UPDATE TBDD_INDEX_MAN SET CONNECTION_ID = {oConnectionId},SQL_RESULT = '{oSQLCommand}',CHANGED_WHO = '{Environment.UserName}' WHERE GUID = {oIndexGuid}" + ClassDatabase.Execute_non_Query(oSQL, True) + + End If + Catch ex As Exception + LOGGER.Error(ex) + End Try End Sub Private Sub WINDREAM_DIRECTCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles WINDREAM_DIRECTCheckBox.CheckedChanged diff --git a/Global_Indexer/frmSQL_DESIGNER.Designer.vb b/Global_Indexer/frmSQL_DESIGNER.Designer.vb new file mode 100644 index 0000000..50102d8 --- /dev/null +++ b/Global_Indexer/frmSQL_DESIGNER.Designer.vb @@ -0,0 +1,412 @@ + _ +Partial Class frmSQL_DESIGNER + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSQL_DESIGNER)) + Me.TBDD_CONNECTIONBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.btnShowConnections = New System.Windows.Forms.Button() + Me.Label14 = New System.Windows.Forms.Label() + Me.cmbConnection = New System.Windows.Forms.ComboBox() + Me.SQL_COMMANDTextBox = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.dgvResult = New System.Windows.Forms.DataGridView() + Me.dgvPlaceholders = New System.Windows.Forms.DataGridView() + Me.colPlaceholder = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.colReplace = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.btnTestSQL = New System.Windows.Forms.Button() + Me.lbIndexe = New System.Windows.Forms.Label() + Me.cmbIndexe = New System.Windows.Forms.ComboBox() + Me.btnAddIndex = New System.Windows.Forms.Button() + Me.btnSaveSQLCommand = New System.Windows.Forms.Button() + Me.lblSaveFinalIndex = New System.Windows.Forms.Label() + Me.btnAddControl = New System.Windows.Forms.Button() + Me.lblControls = New System.Windows.Forms.Label() + Me.cmbControls = New System.Windows.Forms.ComboBox() + Me.cmbStatic = New System.Windows.Forms.ComboBox() + Me.btnAddStatic = New System.Windows.Forms.Button() + Me.Label2 = New System.Windows.Forms.Label() + Me.cmbUser = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.btnAddUser = New System.Windows.Forms.Button() + CType(Me.TBDD_CONNECTIONBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvResult, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvPlaceholders, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnShowConnections + ' + Me.btnShowConnections.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnShowConnections.Image = Global.Global_Indexer.My.Resources.Resources.Go + Me.btnShowConnections.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnShowConnections.Location = New System.Drawing.Point(220, 31) + Me.btnShowConnections.Name = "btnShowConnections" + Me.btnShowConnections.Size = New System.Drawing.Size(111, 24) + Me.btnShowConnections.TabIndex = 82 + Me.btnShowConnections.Text = "Connections" + Me.btnShowConnections.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnShowConnections.UseVisualStyleBackColor = True + ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label14.Location = New System.Drawing.Point(12, 9) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(76, 16) + Me.Label14.TabIndex = 81 + Me.Label14.Text = "Connection:" + ' + 'cmbConnection + ' + Me.cmbConnection.DisplayMember = "GUID" + Me.cmbConnection.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cmbConnection.FormattingEnabled = True + Me.cmbConnection.Location = New System.Drawing.Point(12, 31) + Me.cmbConnection.Name = "cmbConnection" + Me.cmbConnection.Size = New System.Drawing.Size(200, 24) + Me.cmbConnection.TabIndex = 80 + Me.cmbConnection.ValueMember = "GUID" + ' + 'SQL_COMMANDTextBox + ' + Me.SQL_COMMANDTextBox.AcceptsReturn = True + Me.SQL_COMMANDTextBox.AcceptsTab = True + Me.SQL_COMMANDTextBox.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.SQL_COMMANDTextBox.Font = New System.Drawing.Font("Courier New", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.SQL_COMMANDTextBox.Location = New System.Drawing.Point(15, 125) + Me.SQL_COMMANDTextBox.Multiline = True + Me.SQL_COMMANDTextBox.Name = "SQL_COMMANDTextBox" + Me.SQL_COMMANDTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.SQL_COMMANDTextBox.Size = New System.Drawing.Size(905, 186) + Me.SQL_COMMANDTextBox.TabIndex = 86 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(9, 109) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(81, 13) + Me.Label4.TabIndex = 85 + Me.Label4.Text = "SQL-Command:" + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.Label1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label1.Location = New System.Drawing.Point(13, 331) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(65, 15) + Me.Label1.TabIndex = 91 + Me.Label1.Text = "Platzhalter:" + ' + 'Label5 + ' + Me.Label5.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.Label5.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label5.Location = New System.Drawing.Point(365, 331) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(55, 15) + Me.Label5.TabIndex = 90 + Me.Label5.Text = "Ergebnis:" + ' + 'dgvResult + ' + Me.dgvResult.AllowUserToAddRows = False + Me.dgvResult.AllowUserToDeleteRows = False + DataGridViewCellStyle1.BackColor = System.Drawing.Color.Cyan + Me.dgvResult.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvResult.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.dgvResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvResult.Location = New System.Drawing.Point(368, 349) + Me.dgvResult.Name = "dgvResult" + Me.dgvResult.ReadOnly = True + Me.dgvResult.Size = New System.Drawing.Size(552, 134) + Me.dgvResult.TabIndex = 89 + ' + 'dgvPlaceholders + ' + Me.dgvPlaceholders.AllowUserToAddRows = False + Me.dgvPlaceholders.AllowUserToDeleteRows = False + DataGridViewCellStyle2.BackColor = System.Drawing.Color.Cyan + Me.dgvPlaceholders.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 + Me.dgvPlaceholders.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.dgvPlaceholders.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvPlaceholders.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.colPlaceholder, Me.colReplace}) + Me.dgvPlaceholders.Enabled = False + Me.dgvPlaceholders.Location = New System.Drawing.Point(16, 349) + Me.dgvPlaceholders.Name = "dgvPlaceholders" + Me.dgvPlaceholders.Size = New System.Drawing.Size(338, 133) + Me.dgvPlaceholders.TabIndex = 88 + ' + 'colPlaceholder + ' + Me.colPlaceholder.HeaderText = "Platzhalter" + Me.colPlaceholder.Name = "colPlaceholder" + Me.colPlaceholder.ReadOnly = True + ' + 'colReplace + ' + Me.colReplace.HeaderText = "Ersetzung" + Me.colReplace.Name = "colReplace" + ' + 'btnTestSQL + ' + Me.btnTestSQL.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnTestSQL.Font = New System.Drawing.Font("Segoe UI Semibold", 9.75!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Italic), System.Drawing.FontStyle)) + Me.btnTestSQL.Image = CType(resources.GetObject("btnTestSQL.Image"), System.Drawing.Image) + Me.btnTestSQL.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnTestSQL.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnTestSQL.Location = New System.Drawing.Point(752, 314) + Me.btnTestSQL.Name = "btnTestSQL" + Me.btnTestSQL.Size = New System.Drawing.Size(168, 29) + Me.btnTestSQL.TabIndex = 87 + Me.btnTestSQL.Text = "Teste SQL-Command" + Me.btnTestSQL.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnTestSQL.UseVisualStyleBackColor = True + ' + 'lbIndexe + ' + Me.lbIndexe.AutoSize = True + Me.lbIndexe.Enabled = False + Me.lbIndexe.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lbIndexe.Location = New System.Drawing.Point(678, 13) + Me.lbIndexe.Name = "lbIndexe" + Me.lbIndexe.Size = New System.Drawing.Size(203, 16) + Me.lbIndexe.TabIndex = 93 + Me.lbIndexe.Text = "Index (zur Laufzeit ausgewertet):" + ' + 'cmbIndexe + ' + Me.cmbIndexe.Enabled = False + Me.cmbIndexe.FormattingEnabled = True + Me.cmbIndexe.Location = New System.Drawing.Point(681, 32) + Me.cmbIndexe.Name = "cmbIndexe" + Me.cmbIndexe.Size = New System.Drawing.Size(194, 21) + Me.cmbIndexe.TabIndex = 92 + ' + 'btnAddIndex + ' + Me.btnAddIndex.Enabled = False + Me.btnAddIndex.Image = CType(resources.GetObject("btnAddIndex.Image"), System.Drawing.Image) + Me.btnAddIndex.Location = New System.Drawing.Point(881, 32) + Me.btnAddIndex.Name = "btnAddIndex" + Me.btnAddIndex.Size = New System.Drawing.Size(32, 23) + Me.btnAddIndex.TabIndex = 94 + Me.btnAddIndex.UseVisualStyleBackColor = True + ' + 'btnSaveSQLCommand + ' + Me.btnSaveSQLCommand.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnSaveSQLCommand.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnSaveSQLCommand.Image = CType(resources.GetObject("btnSaveSQLCommand.Image"), System.Drawing.Image) + Me.btnSaveSQLCommand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSaveSQLCommand.Location = New System.Drawing.Point(825, 489) + Me.btnSaveSQLCommand.Name = "btnSaveSQLCommand" + Me.btnSaveSQLCommand.Size = New System.Drawing.Size(95, 30) + Me.btnSaveSQLCommand.TabIndex = 95 + Me.btnSaveSQLCommand.Text = "Speichern" + Me.btnSaveSQLCommand.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSaveSQLCommand.UseVisualStyleBackColor = True + ' + 'lblSaveFinalIndex + ' + Me.lblSaveFinalIndex.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblSaveFinalIndex.AutoSize = True + Me.lblSaveFinalIndex.BackColor = System.Drawing.Color.Yellow + Me.lblSaveFinalIndex.Location = New System.Drawing.Point(367, 489) + Me.lblSaveFinalIndex.Name = "lblSaveFinalIndex" + Me.lblSaveFinalIndex.Size = New System.Drawing.Size(38, 13) + Me.lblSaveFinalIndex.TabIndex = 96 + Me.lblSaveFinalIndex.Text = "Label4" + Me.lblSaveFinalIndex.Visible = False + ' + 'btnAddControl + ' + Me.btnAddControl.Image = CType(resources.GetObject("btnAddControl.Image"), System.Drawing.Image) + Me.btnAddControl.Location = New System.Drawing.Point(643, 32) + Me.btnAddControl.Name = "btnAddControl" + Me.btnAddControl.Size = New System.Drawing.Size(32, 23) + Me.btnAddControl.TabIndex = 99 + Me.btnAddControl.UseVisualStyleBackColor = True + ' + 'lblControls + ' + Me.lblControls.AutoSize = True + Me.lblControls.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblControls.Location = New System.Drawing.Point(442, 13) + Me.lblControls.Name = "lblControls" + Me.lblControls.Size = New System.Drawing.Size(215, 16) + Me.lblControls.TabIndex = 98 + Me.lblControls.Text = "Controls (zur Laufzeit ausgewertet):" + ' + 'cmbControls + ' + Me.cmbControls.FormattingEnabled = True + Me.cmbControls.Location = New System.Drawing.Point(445, 31) + Me.cmbControls.Name = "cmbControls" + Me.cmbControls.Size = New System.Drawing.Size(194, 21) + Me.cmbControls.TabIndex = 97 + ' + 'cmbStatic + ' + Me.cmbStatic.FormattingEnabled = True + Me.cmbStatic.Items.AddRange(New Object() {"USERNAME", "MACHINE", "DOMAIN", "DATE"}) + Me.cmbStatic.Location = New System.Drawing.Point(445, 86) + Me.cmbStatic.Name = "cmbStatic" + Me.cmbStatic.Size = New System.Drawing.Size(194, 21) + Me.cmbStatic.TabIndex = 97 + ' + 'btnAddStatic + ' + Me.btnAddStatic.Image = CType(resources.GetObject("btnAddStatic.Image"), System.Drawing.Image) + Me.btnAddStatic.Location = New System.Drawing.Point(643, 86) + Me.btnAddStatic.Name = "btnAddStatic" + Me.btnAddStatic.Size = New System.Drawing.Size(32, 23) + Me.btnAddStatic.TabIndex = 99 + Me.btnAddStatic.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(442, 67) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(112, 16) + Me.Label2.TabIndex = 98 + Me.Label2.Text = "Umgebungsdaten:" + ' + 'cmbUser + ' + Me.cmbUser.FormattingEnabled = True + Me.cmbUser.Items.AddRange(New Object() {"PRENAME", "SURNAME", "SHORTNAME", "LANGUAGE", "EMAIL", "USER_ID", "PROFILE_ID"}) + Me.cmbUser.Location = New System.Drawing.Point(681, 86) + Me.cmbUser.Name = "cmbUser" + Me.cmbUser.Size = New System.Drawing.Size(194, 21) + Me.cmbUser.TabIndex = 97 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label3.Location = New System.Drawing.Point(678, 67) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(118, 16) + Me.Label3.TabIndex = 98 + Me.Label3.Text = "Anwendungsdaten:" + ' + 'btnAddUser + ' + Me.btnAddUser.Image = CType(resources.GetObject("btnAddUser.Image"), System.Drawing.Image) + Me.btnAddUser.Location = New System.Drawing.Point(881, 84) + Me.btnAddUser.Name = "btnAddUser" + Me.btnAddUser.Size = New System.Drawing.Size(32, 23) + Me.btnAddUser.TabIndex = 99 + Me.btnAddUser.UseVisualStyleBackColor = True + ' + 'frmSQL_DESIGNER + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(930, 523) + Me.Controls.Add(Me.btnAddUser) + Me.Controls.Add(Me.btnAddStatic) + Me.Controls.Add(Me.btnAddControl) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.lblControls) + Me.Controls.Add(Me.cmbUser) + Me.Controls.Add(Me.cmbStatic) + Me.Controls.Add(Me.cmbControls) + Me.Controls.Add(Me.lblSaveFinalIndex) + Me.Controls.Add(Me.btnSaveSQLCommand) + Me.Controls.Add(Me.btnAddIndex) + Me.Controls.Add(Me.lbIndexe) + Me.Controls.Add(Me.cmbIndexe) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Label5) + Me.Controls.Add(Me.dgvResult) + Me.Controls.Add(Me.dgvPlaceholders) + Me.Controls.Add(Me.btnTestSQL) + Me.Controls.Add(Me.SQL_COMMANDTextBox) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.btnShowConnections) + Me.Controls.Add(Me.Label14) + Me.Controls.Add(Me.cmbConnection) + Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(937, 392) + Me.Name = "frmSQL_DESIGNER" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "SQL - Designer" + CType(Me.TBDD_CONNECTIONBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvResult, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvPlaceholders, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + 'Friend WithEvents DD_DMSLiteDataSet As DD_ProcessManager.DD_DMSLiteDataSet + 'Friend WithEvents TableAdapterManager As DD_ProcessManager.DD_DMSLiteDataSetTableAdapters.TableAdapterManager + 'Friend WithEvents TBDD_CONNECTIONTableAdapter As DD_ProcessManager.DD_DMSLiteDataSetTableAdapters.TBDD_CONNECTIONTableAdapter + Friend WithEvents TBDD_CONNECTIONBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents btnShowConnections As System.Windows.Forms.Button + Friend WithEvents Label14 As System.Windows.Forms.Label + Friend WithEvents cmbConnection As System.Windows.Forms.ComboBox + Friend WithEvents SQL_COMMANDTextBox As System.Windows.Forms.TextBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents dgvResult As System.Windows.Forms.DataGridView + Friend WithEvents dgvPlaceholders As System.Windows.Forms.DataGridView + Friend WithEvents colPlaceholder As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents colReplace As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents btnTestSQL As System.Windows.Forms.Button + Friend WithEvents lbIndexe As System.Windows.Forms.Label + Friend WithEvents cmbIndexe As System.Windows.Forms.ComboBox + Friend WithEvents btnAddIndex As System.Windows.Forms.Button + Friend WithEvents btnSaveSQLCommand As System.Windows.Forms.Button + Friend WithEvents lblSaveFinalIndex As System.Windows.Forms.Label + Friend WithEvents btnAddControl As Button + Friend WithEvents lblControls As Label + Friend WithEvents cmbControls As ComboBox + Friend WithEvents cmbStatic As ComboBox + Friend WithEvents btnAddStatic As Button + Friend WithEvents Label2 As Label + Friend WithEvents cmbUser As ComboBox + Friend WithEvents Label3 As Label + Friend WithEvents btnAddUser As Button +End Class diff --git a/Global_Indexer/frmSQL_DESIGNER.resx b/Global_Indexer/frmSQL_DESIGNER.resx new file mode 100644 index 0000000..50dad6c --- /dev/null +++ b/Global_Indexer/frmSQL_DESIGNER.resx @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 41, 9 + + + True + + + True + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKhJREFUOE+dkb0RAiEQhSnFIgyMyckNLMI6zB0zS0FruBKugdMACFdWecoBw49v + 5ku43W8eh7DWkmcxxhzFP2HB4bqnaZ7IS27OuU341BcW7E7bN5f7ebxNLGCG26QCENo0qQq01qSUIill + kaIAV+Dz0lJMJkhr89BjeRZZCeIfh8UamcDzfbphQRoIMITKYFhQoykogUUQ1n7pFYTxPBDUaAp6+EwL + 8QKzYQ6as7QBdAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn + yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFRJREFUOE9j+P//P0UYTHz79u0/Cfg9EBswAAGKAU5OTnD84f1HOEYWA9FtbW1w + Q8gyAIRhhpBtAAiD9BBlADJGVkNbA4jBowYMSgPIwXADyMf/GQC4A6rkpAjLjQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn + yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn + yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn + yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF + TkSuQmCC + + + + + AAABAAMAICAQAAEABADoAgAANgAAACAgAAABAAgAqAgAAB4DAAAgIAAAAQAgAKgQAADGCwAAKAAAACAA + AABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAP///////wAAAAAAAAAAD/// + ////////8AAAAAAAD//4d3d3d3d3j//wAAAAD/+Hd3d3d3d3d3d4//AAAA/3d3d3d3d3d3d3d3/wAAD/ + d3d3d3d3d3d3d3d3/wAA/3d3d3d3d3d3d3d3d/8AAP93d3d3d3d3d3d3d3f/AAD/d3d3d3d3d3d3d3d3 + /wAA/3d3d3d3d3d3d3d3d/8AAP93d3d3d3d3d3d3d3f/AAD/d3d3d3d3d3d3d3d3/wAA/3d3d3d3d3d3 + d3d3d/8AAP93d3d3d3d3d3d3d3f/AAD/d3d3d3d3d3d3d3d3/wAA/3d3d3d3d3d3d3d3d/8AAP93d3d3 + d3d3d3d3d3f/AAD/d3d3d3d3d3d3d3d3/wAA/3d3d3d3d3d3d3d3d/8AAP93d3d3d3d3d3d3d3f/AAD/ + d3d3d3d3d3d3d3d3/wAA/3d3d3d3d3d3d3d3d/8AAP93d3eI/////4h3d3f/AAD/d3f//////////3d3 + /wAA/3eP///////////4d/8AAP93j///////////+Hf/AAD/d3f//////////3d3/wAAD/d3d4j///// + iHd3f/AAAA//h3d3d3d3d3d3eP/wAAAAD//4d3d3d3d3j//wAAAAAAAP///////////wAAAAAAAAAAD/ + //////8AAAAAAP/AA//+AAB/+AAAH+AAAAfgAAAHwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA+AA + AAfgAAAH+AAAH/4AAH//wAP/KAAAACAAAABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAA + AABCQkIATU1NAG9vbwB5eXkAhoaGAJGRkQCamZkApKOkALOzswDFxMUAycnJANDPzwDm5OUA6+vrAPHv + 8AD29vYA+Pj4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wAAAAAAAAAAAAAAEREQEBAQEBAQEBERAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAA + AAAAAAAAAAAAAAAQEBAOCQYDAQEBAQEBAQIDBgkOEBAQAAAAAAAAAAAREBALBAEBAQEBAQEBAQEBAQEB + AQEECxAQEQAAAAAAABAQBQEBAQEBAQEBAQEBAQEBAQEBAQEBBRAQAAAAAAAQEAUBAQEBAQEBAQEBAQEB + AQEBAQEBAQEBBRAQAAAAABAQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEBAAAAAAEBABAQEBAQEBAQEB + AQEBAQEBAQEBAQEBAQEQEAAAAAAQEAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAQAAAAABAQAQEBAQEB + AQEBAQEBAQEBAQEBAQEBAQEBEBAAAAAAEBABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQEAAAAAAQEAEB + AQEBAQEBAQEBAQEBAQEBAQEBAQEBARAQAAAAABAQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEBAAAAAA + EBABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQEAAAAAAQEAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAQ + AAAAABAQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEBAAAAAAEBABAQEBAQEBAQEBAQEBAQEBAQEBAQEB + AQEQEAAAAAAQEAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAQAAAAABAQAQEBAQEBAQEBAQEBAQEBAQEB + AQEBAQEBEBAAAAAAEBABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQEAAAAAAQEAEBAQEBAQEBAQEBAQEB + AQEBAQEBAQEBARAQAAAAABAQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEBAAAAAAEBABAQEBAQQICg0P + Dw8PDw8NCggEAQEBAQEQEAAAAAAQEAEBAgcNDw8PDw8PDw8PDw8PDw8NBwIBARAQAAAAABAOAQEMDw8P + Dw8PDw8PDw8PDw8PDw8PDAEBEBAAAAAAEA4BAQwPDw8PDw8PDw8PDw8PDw8PDw8MAQEQEAAAAAAQEAUB + AgcNDw8PDw8PDw8PDw8PDw8NBwIBBRAQAAAAAAAQDgUBAQEECAoNDw8PDw8PDQoIBAEBAQUOEAAAAAAA + ABEQEAsEAQEBAQEBAQEBAQEBAQEBAQQLEBARAAAAAAAAAAAQEBAOCQYDAQEBAQEBAQEDBgkOEBAQAAAA + AAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAARERAQEBAQEBAQEREAAAAA + AAAAAAAA/8AD//4AAH/4AAAf4AAAB+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAD4AAAB+AA + AAf4AAAf/gAAf//AA/8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYg9vb2cPb29p/29va/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29va/9vb2n/b29nD29vYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29hD29vZw9vb23/b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vbf9vb2cPb29hAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vZQ9vb27/b29v/29vb/6+vr/7Ozs/+RkZH/b29v/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9NTU3/b29v/5GRkf+zs7P/6+vr//b29v/29vb/9vb27/b2 + 9lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2n/b29v/29vb/ycnJ/3p6ev9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/enp6/8nJ + yf/29vb/9vb2//b29p8AAAAAAAAAAAAAAAAAAAAAAAAAAPb29nD29vb/9vb2/4aGhv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/4aGhv/29vb/9vb2//b29nAAAAAAAAAAAAAAAAAAAAAA9vb23/b29v+Ghob/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/4aGhv/29vb/9vb23wAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAPb2 + 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAA + AAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAA + AAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b2 + 9v/29vb/AAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAA9vb2//b2 + 9v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAA + AAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAA + AAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b2 + 9v8AAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAPb2 + 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv95eHj/pKOk/8XExf/m5OX/8e/w//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/5uTl/8XExf+ko6T/eXh4/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAA + AAAAAAAA9vb2//b29v9CQkL/QkJC/01NTf+amZn/5uTl//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/5uTl/5qZmf9NTU3/QkJC/0JCQv/29vb/9vb2/wAA + AAAAAAAAAAAAAAAAAAD29vb/6+vr/0JCQv9CQkL/0M/P//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w/9DPz/9CQkL/QkJC//b2 + 9v/29vb/AAAAAAAAAAAAAAAAAAAAAPb29v/r6+v/QkJC/0JCQv/Qz8//8e/w//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/0M/P/0JC + Qv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAA9vb23/b29v+Ghob/QkJC/01NTf+amZn/5uTl//Hv + 8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P/x7/D/5uTl/5qZ + mf9NTU3/QkJC/4aGhv/29vb/9vb23wAAAAAAAAAAAAAAAAAAAAD29vZw9vb2/+vr6/+Ghob/QkJC/0JC + Qv9CQkL/eXh4/6SjpP/FxMX/5uTl//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w/+bk5f/FxMX/pKOk/3l4 + eP9CQkL/QkJC/0JCQv+Ghob/6+vr//b29v/29vZwAAAAAAAAAAAAAAAAAAAAAAAAAAD29vaf9vb2//b2 + 9v/Jycn/enp6/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv96enr/ycnJ//b29v/29vb/9vb2nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD29vZQ9vb27/b29v/29vb/6+vr/7Ozs/+RkZH/b29v/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/b29v/5GRkf+zs7P/6+vr//b29v/29vb/9vb27/b29lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD29vYQ9vb2cPb29t/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb23/b29nD29vYQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29iD29vZw9vb2n/b29r/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29r/29vaf9vb2cPb29iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP8AAP/4AAAf8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPgAAAH8AAAD/gAAB//AAD/ + + + \ No newline at end of file diff --git a/Global_Indexer/frmSQL_DESIGNER.vb b/Global_Indexer/frmSQL_DESIGNER.vb new file mode 100644 index 0000000..6122284 --- /dev/null +++ b/Global_Indexer/frmSQL_DESIGNER.vb @@ -0,0 +1,335 @@ +Imports System.Text.RegularExpressions +Imports Oracle.ManagedDataAccess.Client +Imports DD_LIB_Standards + +Public Class frmSQL_DESIGNER + 'Private _windreamPM As ClassPMWindream + + Dim CurrentPosition As Integer = 0 + Dim CurrentPlaceholders As New Placeholders() + Dim CurrentTableType As String + Dim AtPlaceholderPattern As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" '"\[%[0-9A-Za-z_-]{1,}\]" + Public Class Placeholders + Public Property RecordId As Integer + Public Property ParentRecordId As Integer + Public Property FormId As Integer + End Class + + Public Property SQLCommand() As String + Get + Return SQL_COMMANDTextBox.Text + End Get + Set(value As String) + SQL_COMMANDTextBox.Text = value + End Set + End Property + + Public Property SQLConnectionId As Integer + Get + Return cmbConnection.SelectedValue + End Get + Set(value As Integer) + cmbConnection.SelectedValue = value + End Set + End Property + + Public Property ConnectionID As Integer + Private Property IndexID As Integer + Private Property DocTypeId As Integer + + Public Sub New(IndexId As Integer, DocTypeId As Integer) + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Me.IndexID = IndexId + Me.DocTypeId = DocTypeId + End Sub + + Private Sub TBPM_PROFILE_FINAL_INDEXINGBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) + Validate() + 'TableAdapterManager.UpdateAll(Me.DD_DMSLiteDataSet) + End Sub + Private Sub frmSQL_FINAL_INDICES_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Try + lblSaveFinalIndex.Visible = False + + If Not String.IsNullOrEmpty(SQLCommand) Then + SQL_COMMANDTextBox.Text = SQLCommand + End If + + LoadConnections() + LoadControls() + + cmbConnection.FindStringExact(ConnectionID) + + 'TBDD_CONNECTIONTableAdapter.Connection.ConnectionString = MyConnectionString + 'TBDD_CONNECTIONTableAdapter.Fill(DD_DMSLiteDataSet.TBDD_CONNECTION) + + ' CURRENT_DT_SQL_CONFIG_TABLE = ClassDatabase.Return_Datatable(String.Format("SELECT T.CONNECTION_ID,T1.BEZEICHNUNG AS 'CON_STRING',ISNULL(T.SQL_COMMAND,'') AS 'SQL_COMMAND' FROM TBPM_PROFILE_FINAL_INDEXING T, TBDD_CONNECTION T1 WHERE T.CONNECTION_ID = T1.GUID AND T.GUID = {0}", CURRENT_INDEX_ID), True) + 'If (CURRENT_DESIGN_TYPE = "INPUT_INDEX") Or CURRENT_DESIGN_TYPE = "FINAL_INDEX" Then + ' If CURRENT_DT_SQL_CONFIG_TABLE.Rows.Count = 1 Then + ' cmbConnection.SelectedValue = CURRENT_DT_SQL_CONFIG_TABLE.Rows(0).Item("CONNECTION_ID") + ' cmbConnection.FindStringExact(CURRENT_DT_SQL_CONFIG_TABLE.Rows(0).Item("CON_STRING")) + ' End If + + ' Dim oSQL = String.Format("SELECT NAME FROM TBPM_PROFILE_CONTROLS WHERE PROFIL_ID = {0} AND CTRL_TYPE <> 'LBL' ORDER BY NAME", CURRENT_ProfilGUID) + ' Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL, True) + ' cmbControls.DataSource = oDatatable + ' cmbControls.DisplayMember = oDatatable.Columns(0).ColumnName + ' cmbControls.Visible = True + ' lblControls.Visible = True + ' btnAddControl.Visible = True + + ' cmbIndexe.Items.Clear() + ' If IDB_ACTIVE = False Then + ' Dim oIndicies = WINDREAM.GetIndicesByObjecttype(CURRENT_OBJECTTYPE) + ' If oIndicies IsNot Nothing Then + ' For Each index As String In oIndicies + ' cmbIndexe.Items.Add(index) + ' Next + ' cmbIndexe.SelectedIndex = -1 + ' End If + ' 'cmbIndexe.Enabled = True + ' 'lbIndexe.Enabled = True + ' 'btnAddIndex.Enabled = True + ' Else + ' Dim oAttributes = IDBData.GetIndicesByBE(CURRENT_OBJECTTYPE) + ' If oAttributes IsNot Nothing Then + ' For Each oAttribute As String In oAttributes + ' cmbIndexe.Items.Add(oAttribute) + ' Next + ' cmbIndexe.SelectedIndex = -1 + ' End If + + ' 'cmbIndexe.Enabled = False + ' 'lbIndexe.Enabled = False + ' 'btnAddIndex.Enabled = False + ' End If + + 'Else + ' cmbControls.Visible = False + ' lblControls.Visible = False + ' btnAddControl.Visible = False + ' cmbIndexe.Visible = False + ' lbIndexe.Visible = False + ' btnAddIndex.Visible = False + 'End If + Catch ex As Exception + LOGGER.Error(ex) + MsgBox("Unexpected Error while loading form: " & ex.Message, MsgBoxStyle.Critical) + End Try + End Sub + + Private Sub SQL_COMMANDTextBox_TextChanged(sender As Object, e As EventArgs) Handles SQL_COMMANDTextBox.TextChanged, SQL_COMMANDTextBox.Click + CurrentPosition = SQL_COMMANDTextBox.SelectionStart + + If SQL_COMMANDTextBox.Text.Trim().Count = 0 Then + dgvPlaceholders.Enabled = False + Else + dgvPlaceholders.Enabled = True + End If + + CheckForPlaceholders() + End Sub + Private Sub CheckForPlaceholders() + Dim text As String = SQL_COMMANDTextBox.Text + dgvPlaceholders.Rows.Clear() + + Dim patterns As List(Of ClassPatterns.Pattern) = ClassPatterns.GetAllPatterns(text) + + For Each pattern In patterns + dgvPlaceholders.Rows.Add({pattern.ToString, ""}) + Next + + 'Dim count As Integer = 0 + 'Dim text As String = Me.Value + 'Dim atPlaceholderRegex = New Regex(AtPlaceholderPattern, RegexOptions.IgnoreCase) + 'Dim matches As MatchCollection = atPlaceholderRegex.Matches(text) + 'dgvPlaceholders.Rows.Clear() + 'For Each match As Match In matches + ' dgvPlaceholders.Rows.Add({match.Value, ""}) + 'Next + End Sub + + Private Sub btnTestSQL_Click(sender As Object, e As EventArgs) Handles btnTestSQL.Click + Dim query As String = SQL_COMMANDTextBox.Text + + For Each row As DataGridViewRow In dgvPlaceholders.Rows + Dim placeholder As String = row.Cells(0).Value + Dim replacement As String = row.Cells(1).Value + + ' Wenn Ersetzung ausgefüllt wurde, Platzhalter damit ersetzen + If Not String.IsNullOrEmpty(replacement) Then + Dim pattern As New ClassPatterns.Pattern(placeholder) + + query = ClassPatterns.ReplacePattern(query, pattern.Type, replacement) + Else + MsgBox("Bitte geben Sie für den Platzhalter " & placeholder & " einen Wert an!", MsgBoxStyle.Exclamation, "Fehlende Platzhalter Ersetzung") + Exit Sub + End If + Next + + Dim ds As DataSet = ExecuteWithConnection(cmbConnection.SelectedValue, query) + + If ds IsNot Nothing Then + dgvResult.DataSource = ds.Tables(0) + End If + End Sub + Private Function ExecuteWithConnection(connectionId As Integer, sql As String) As DataSet + Try + + Dim connectionString As String + + connectionString = ClassDatabase.Get_ConnectionString(connectionId) + + If connectionString <> "" Then + + If connectionString.StartsWith("Server=") And connectionString.Contains("Database=") Then + Dim sqlConnection As SqlClient.SqlConnection + Dim sqlCommand As SqlClient.SqlCommand + Dim sqlAdapter As New SqlClient.SqlDataAdapter + Dim dataset As New DataSet + + sqlConnection = New SqlClient.SqlConnection(connectionString) + sqlConnection.Open() + + sqlCommand = New SqlClient.SqlCommand(sql, sqlConnection) + + sqlAdapter.SelectCommand = sqlCommand + sqlAdapter.Fill(dataset) + + Return dataset + ElseIf connectionString.Contains("dsn=") Then 'ODBC-Connection + Dim sqlConnection As Odbc.OdbcConnection + Dim sqlCommand As Odbc.OdbcCommand + Dim sqlAdapter As New Odbc.OdbcDataAdapter + Dim dataset As New DataSet + + sqlConnection = New Odbc.OdbcConnection(connectionString) + sqlConnection.Open() + + sqlCommand = New Odbc.OdbcCommand(sql, sqlConnection) + + sqlAdapter.SelectCommand = sqlCommand + sqlAdapter.Fill(dataset) + + Return dataset + Else + LOGGER.Debug(" >> It's an Oracle-Connection (ExecuteWithConnection)", False) + Dim sqlConnection As OracleConnection + Dim sqlCommand As OracleCommand + Dim sqlAdapter As New OracleDataAdapter + Dim dataset As New DataSet + + sqlConnection = New OracleConnection(connectionString) + sqlConnection.Open() + + sqlCommand = New OracleCommand(sql, sqlConnection) + + sqlAdapter.SelectCommand = sqlCommand + sqlAdapter.Fill(dataset) + + Return dataset + End If + Else + MsgBox("Keine gültige ConnectionID", MsgBoxStyle.Exclamation) + End If + + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info(" - Unvorhergesehener Fehler bei TestSQL - Fehler: " & vbNewLine & ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei TestSQL:") + Return Nothing + End Try + End Function + + + + Private Sub btnSaveSQLCommand_Click(sender As Object, e As EventArgs) Handles btnSaveSQLCommand.Click + ' SQL wird nicht hier, sondern in frmAdministration gespeichert + lblSaveFinalIndex.Visible = True + lblSaveFinalIndex.Text = "SQL für finalen Index wurde erfolgreich gespeichert! " & Now.ToString + SQLCommand = SQL_COMMANDTextBox.Text + End Sub + + Private Sub btnAddControl_Click(sender As Object, e As EventArgs) Handles btnAddControl.Click + If cmbControls.SelectedIndex <> -1 Then + Dim value As String = ClassPatterns.WrapPatternValue(ClassPatterns.PATTERN_CTRL, cmbControls.Text) + InsertAtSelection(value) + End If + End Sub + + Private Sub btnAddStatic_Click(sender As Object, e As EventArgs) Handles btnAddStatic.Click + If cmbStatic.SelectedIndex <> -1 Then + Dim value As String = ClassPatterns.WrapPatternValue(ClassPatterns.PATTERN_INT, cmbStatic.Text) + InsertAtSelection(value) + End If + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAddIndex.Click + If cmbIndexe.SelectedIndex <> -1 Then + Dim oValue As String + 'If IDB_ACTIVE = False Then + ' oValue = ClassPatterns.WrapPatternValue(ClassPatterns.PATTERN_WMI, cmbIndexe.Text) + 'Else + ' oValue = ClassPatterns.WrapPatternValue(ClassPatterns.PATTERN_IDBA, cmbIndexe.Text) + 'End If + + InsertAtSelection(oValue) + End If + End Sub + + Private Sub btnAddUser_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click + If cmbUser.SelectedIndex <> -1 Then + Dim value As String = ClassPatterns.WrapPatternValue(ClassPatterns.PATTERN_USER, cmbUser.Text) + InsertAtSelection(value) + End If + End Sub + + Private Sub InsertAtSelection(str As String) + Dim altePosition As Integer = SQL_COMMANDTextBox.SelectionStart() + SQL_COMMANDTextBox.Text = SQL_COMMANDTextBox.Text.Insert(altePosition, str) + SQL_COMMANDTextBox.SelectionStart = altePosition + str.Length + End Sub + + Private Sub LoadConnections() + Try + Dim oDatatable As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_CONNECTION") + + cmbConnection.ValueMember = "GUID" + cmbConnection.DisplayMember = "BEZEICHNUNG" + cmbConnection.DataSource = oDatatable + + Dim oConnectionName As String = oDatatable.Select($"GUID = {ConnectionID}"). + First(). + Item("BEZEICHNUNG") + + Dim oIndex = cmbConnection.FindStringExact(oConnectionName) + + cmbConnection.SelectedIndex = oIndex + Catch ex As Exception + LOGGER.Error(ex) + MsgBox("Connections could not be loaded", MsgBoxStyle.Critical, Text) + End Try + End Sub + + Private Sub LoadControls() + Try + Dim oDatatable = ClassDatabase.Return_Datatable($"SELECT * FROM TBDD_INDEX_MAN WHERE DOK_ID = {DocTypeId} AND ACTIVE = 1") + + cmbControls.ValueMember = "WD_INDEX" + cmbControls.DisplayMember = "NAME" + cmbControls.DataSource = oDatatable + Catch ex As Exception + LOGGER.Error(ex) + MsgBox("Controls could not be loaded", MsgBoxStyle.Critical, Text) + End Try + End Sub + + Private Sub btnShowConnections_Click(sender As Object, e As EventArgs) Handles btnShowConnections.Click + frmConnections.ShowDialog() + End Sub + + +End Class \ No newline at end of file diff --git a/SetupVS19/Config.wxi b/SetupVS19/Config.wxi new file mode 100644 index 0000000..c360a7b --- /dev/null +++ b/SetupVS19/Config.wxi @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/SetupVS19/Product.wxs b/SetupVS19/Product.wxs new file mode 100644 index 0000000..4b9b7e3 --- /dev/null +++ b/SetupVS19/Product.wxs @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DISABLE_DESKTOP_ICON + + + + + DISABLE_STARTMENU_ICON + + + + + + + + + + + + + 1 + 1 + 1 + 1 + 1 + + + \ No newline at end of file diff --git a/SetupVS19/SetupVS19.wixproj b/SetupVS19/SetupVS19.wixproj new file mode 100644 index 0000000..206f03c --- /dev/null +++ b/SetupVS19/SetupVS19.wixproj @@ -0,0 +1,61 @@ + + + + Debug + x86 + 3.10 + 54dbcfae-14b1-4811-94af-b59fff61ea73 + 2.0 + SetupVS19 + Package + + + bin\$(Configuration)\ + obj\$(Configuration)\ + Debug + -b "$(SolutionDir)Global_Indexer\bin\$(Configuration)" + + + bin\$(Configuration)\ + obj\$(Configuration)\ + + + + + + + + + + $(WixExtDir)\WixUtilExtension.dll + WixUtilExtension + + + $(WixExtDir)\WixUIExtension.dll + WixUIExtension + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file