FileFlow/Global_Indexer/frmSQLConfigAutoIndex.vb
2015-07-07 13:04:46 +02:00

113 lines
5.7 KiB
VB.net

Imports Oracle.ManagedDataAccess.Client
Public Class SQLConfigAutoIndex
Private Sub btnVorschlag_Click(sender As Object, e As EventArgs) Handles btnVorschlag.Click
TestSQL(cmbConnection.SelectedValue, SQL_ERGEBNISTextBox.Text)
End Sub
Private Sub TestSQL(conid As Integer, sql_Vorschlag As String)
Try
Dim connectionString As String
Dim i As Integer
connectionString = ClassFormFunctions.GetConnectionString(conid)
If connectionString <> "" Then
If connectionString.Contains("Initial Catalog=") Then
Dim sqlCnn As SqlClient.SqlConnection
Dim sqlCmd As SqlClient.SqlCommand
Dim adapter As New SqlClient.SqlDataAdapter
Dim NewDataset As New DataSet
sqlCnn = New SqlClient.SqlConnection(connectionString)
sqlCnn.Open()
sqlCmd = New SqlClient.SqlCommand(sql_Vorschlag, sqlCnn)
adapter.SelectCommand = sqlCmd
adapter.Fill(NewDataset)
Dim msg As String
For i = 0 To NewDataset.Tables(0).Rows.Count - 1
msg &= NewDataset.Tables(0).Rows(i).Item(0) & vbNewLine
If i = 30 Then
Exit For
End If
Next
adapter.Dispose()
sqlCmd.Dispose()
sqlCnn.Close()
MsgBox("Folgende Daten wurden erfolgreich abgerufen: " & vbNewLine & vbNewLine & msg & vbNewLine & vbNewLine & "Das Ergebnis wurd auf 30 Zeilen eingeschränkt!", MsgBoxStyle.Information)
ElseIf connectionString.StartsWith("Data Source=") And connectionString.Contains(";Persist Security Info=True;User Id=") Then
Dim sqlCnn As OracleConnection
Dim sqlCmd As OracleCommand
Dim adapter As OracleDataAdapter
Dim NewDataset As DataSet
sqlCnn = New OracleConnection(connectionString)
' Try
sqlCnn.Open()
sqlCmd = New OracleCommand(sql_Vorschlag, sqlCnn)
adapter.SelectCommand = sqlCmd
adapter.Fill(NewDataset)
Dim msg As String
For i = 0 To NewDataset.Tables(0).Rows.Count - 1
msg &= NewDataset.Tables(0).Rows(i).Item(0) & vbNewLine
If i = 30 Then
Exit For
End If
Next
adapter.Dispose()
sqlCmd.Dispose()
sqlCnn.Close()
MsgBox("Folgende Daten wurden erfolgreich abgerufen: " & vbNewLine & vbNewLine & msg & vbNewLine & vbNewLine & "Das Ergebnis wurd auf 30 Zeilen eingeschränkt!", MsgBoxStyle.Information)
End If
Else
MsgBox("Keine gültige ConnectionID", MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Fehler bei TestSQL - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei TestSQL:")
End Try
End Sub
Private Sub frmSQLSuggestion_Load(sender As Object, e As EventArgs) Handles Me.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "MyDataset.TBDD_CONNECTION". Sie können sie bei Bedarf verschieben oder entfernen.
Me.TBDD_CONNECTIONTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_CONNECTIONTableAdapter.Fill(Me.MyDataset.TBDD_CONNECTION)
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_INDEX_AUTOM WHERE GUID = " & CURRENT_INDEXAUTO)
If DT.Rows.Count = 1 Then
Me.cmbConnection.SelectedValue = DT.Rows(0).Item("CONNECTION_ID")
SQL_ERGEBNISTextBox.Text = DT.Rows(0).Item("SQL_RESULT")
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
frmConnections.ShowDialog()
Me.TBDD_CONNECTIONTableAdapter.Fill(Me.MyDataset.TBDD_CONNECTION)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnsave.Click
Try
Dim origresultstring = ClassDatabase.Execute_Scalar("SELECT SQL_RESULT FROM TBDD_INDEX_AUTOM WHERE GUID = " & CURRENT_INDEXAUTO, MyConnectionString, True)
'Dim origConnection = ClassDatabase.Execute_Scalar("SELECT CONNECTION_ID FROM TBDD_INDEX_AUTOM WHERE GUID = " & CURRENT_INDEXAUTO, True)
'If origConnection Is DBNull Then
'End If
Dim insresultstring = SQL_ERGEBNISTextBox.Text.Replace("'", "''")
If insresultstring <> origresultstring Then
Dim cmd As String
cmd = "UPDATE TBDD_INDEX_AUTOM SET CONNECTION_ID = " & cmbConnection.SelectedValue & ",SQL_RESULT = '" & insresultstring & "',CHANGED_WHO = '" & _
Environment.UserName & "' WHERE GUID = " & CURRENT_INDEXAUTO
If ClassDatabase.Execute_non_Query(cmd, True) = True Then
lblSave.Text = "SQL-Daten erfolgreich gespeichert - " & Now
Me.lblSave.Visible = True
Else
Me.lblSave.Visible = False
End If
Else
Me.lblSave.Visible = True
lblSave.Text = "Keine Änderungen vorhanden"
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Save SQL IndexAuto:")
End Try
End Sub
End Class