Hauptfenster
This commit is contained in:
@@ -5328,4 +5328,79 @@ ELSE_ATILLA:
|
||||
End Try
|
||||
Me.Cursor = Cursors.Default
|
||||
End Sub
|
||||
|
||||
Private Sub FIXSQLTIGGERSQLGUIDE01ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FIXSQLTIGGERSQLGUIDE01ToolStripMenuItem.Click
|
||||
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.SQLGUIDE01_USED Then
|
||||
MsgBox("Dieses Skript darf nur unter SQLGUIDE01 ausgeführt werden.", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
Using ofd As New OpenFileDialog()
|
||||
|
||||
ofd.Title = "SQL-Trigger-Skript auswählen"
|
||||
ofd.Filter = "SQL Dateien (*.sql)|*.sql|Alle Dateien (*.*)|*.*"
|
||||
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
|
||||
ofd.Multiselect = False
|
||||
|
||||
If ofd.ShowDialog() <> DialogResult.OK Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim filePath As String = ofd.FileName
|
||||
|
||||
Try
|
||||
RunTriggerFixScript(filePath)
|
||||
MessageBox.Show(
|
||||
"SQL-Trigger-Skript wurde erfolgreich ausgeführt.",
|
||||
"Fertig",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information
|
||||
)
|
||||
|
||||
Catch ex As Exception
|
||||
MessageBox.Show(
|
||||
"Fehler beim Ausführen des Skripts:" & vbCrLf & ex.Message,
|
||||
"Fehler",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error
|
||||
)
|
||||
End Try
|
||||
End Using
|
||||
|
||||
End Sub
|
||||
Public Sub RunTriggerFixScript(ByVal filePath As String)
|
||||
|
||||
|
||||
If Not File.Exists(filePath) Then
|
||||
Throw New FileNotFoundException("SQL-Datei nicht gefunden", filePath)
|
||||
End If
|
||||
|
||||
Dim lines() As String = File.ReadAllLines(filePath, Encoding.UTF8)
|
||||
|
||||
Dim lineNo As Integer = 0
|
||||
|
||||
For Each rawLine As String In lines
|
||||
lineNo += 1
|
||||
|
||||
Dim sql As String = rawLine.Trim()
|
||||
|
||||
' Leere Zeilen oder Kommentare überspringen
|
||||
If sql = "" Then Continue For
|
||||
|
||||
Try
|
||||
MsgBox(sql)
|
||||
Dim ok As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(sql, "SQLGUIDE_ADMIN")
|
||||
|
||||
If Not ok Then
|
||||
Throw New ApplicationException($"doSQL() lieferte False (Zeile {lineNo})" & vbNewLine & sql)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
' Exaktes Logging inkl. Zeilennummer
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, sql, $"RunTriggerFixScript_LineByLine – Zeile {lineNo}")
|
||||
Throw
|
||||
End Try
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user