add new Setup, add new SQL Designer
This commit is contained in:
335
Global_Indexer/frmSQL_DESIGNER.vb
Normal file
335
Global_Indexer/frmSQL_DESIGNER.vb
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user