WIP: EDM Designer

This commit is contained in:
Jonathan Jenne
2018-09-05 14:28:17 +02:00
parent 33bea6fcb7
commit 49ee0a9374
2 changed files with 159 additions and 144 deletions

View File

@@ -3,10 +3,12 @@ Imports DigitalData.Modules.Logging
Imports System.IO
Public Class FrmMain
Private SelectedTable As Integer
Private _selectedTable As Integer
Private _selectedTableName As String
Private _logger As NLog.Logger
Private _logConfig As LogConfig
Private DBFirebird As Firebird
Private _firebird As Firebird
Private Sub CreateTableNodesFromDatatable(DataTable As DataTable, DatabaseName As String)
treeViewMain.Nodes.Clear()
@@ -29,6 +31,7 @@ Public Class FrmMain
For Each row As DataRow In DataTable.Rows
Dim oNode As New TreeNode With {
.Text = row.Item("TABLE"),
.Name = row.Item("TABLE"),
.Tag = row.Item("TABLE_ID")
}
@@ -45,7 +48,7 @@ Public Class FrmMain
End Sub
Private Function LoadTables()
Return DBFirebird.GetDatatable("SELECT DISTINCT T.TABLE_ID,T.""TABLE"" from VWEDM_TABLE_COLUMN T")
Return _firebird.GetDatatable("SELECT DISTINCT T.TABLE_ID,T.""TABLE"" from VWEDM_TABLE_COLUMN T")
End Function
Private Function DatabaseSettingsExist()
@@ -53,9 +56,9 @@ Public Class FrmMain
End Function
Private Sub Init()
DBFirebird = New Firebird(_logConfig.LogFactory, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword)
_firebird = New Firebird(_logConfig.LogFactory, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword)
If DBFirebird.ConnectionFailed Then
If _firebird.ConnectionFailed Then
MsgBox("Database connection failed. Please check the log.", vbCritical)
Exit Sub
End If
@@ -64,7 +67,7 @@ Public Class FrmMain
'CurrentUser = New ClassCurrentUser(DBFirebird)
Dim dt As DataTable = LoadTables()
CreateTableNodesFromDatatable(dt, DBFirebird.DatabaseName)
CreateTableNodesFromDatatable(dt, _firebird.DatabaseName)
End Sub
@@ -89,7 +92,8 @@ Public Class FrmMain
Private Sub TreeViewMain_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles treeViewMain.NodeMouseClick
If e.Button = MouseButtons.Right Then
SelectedTable = -1
_selectedTable = -1
_selectedTableName = Nothing
' Wenn kein Node geklickt wurde, aussteigen
If e.Node Is Nothing OrElse e.Node.Parent Is Nothing Then
@@ -101,7 +105,8 @@ Public Class FrmMain
' Das Kontextmenü für den angeklickten Node öffnen
Select Case parentName
Case "TABLES"
SelectedTable = e.Node.Tag
_selectedTable = e.Node.Tag
_selectedTableName = e.Node.Name
contextMenuTable.Show(MousePosition)
Case "DATABASE"
contextMenuDatabase.Show(MousePosition)
@@ -111,31 +116,38 @@ Public Class FrmMain
End If
End Sub
Private Sub SpaltenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpaltenBearbeitenToolStripMenuItem.Click
Dim dt As DataTable = DBFirebird.GetDatatable($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {SelectedTable}")
gridControlTableProperties.DataSource = dt
End Sub
Private Sub TabelleBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TabelleBearbeitenToolStripMenuItem.Click
Dim oDataTable = New DataTable()
Dim oConnection = _firebird.GetConnection()
Dim oDataAdapter = New FirebirdSql.Data.FirebirdClient.FbDataAdapter($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {_selectedTable}", oConnection)
End Sub
Try
oDataAdapter.Fill(oDataTable)
gridControlTableProperties.DataSource = oDataTable
Catch ex As Exception
_logger.Error(ex)
MsgBox($"Error while loading columns for table {_selectedTable}")
Finally
oConnection.Close()
End Try
Private Sub DebugAnToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAnToolStripMenuItem.Click
_logConfig.Debug = True
End Sub
oDataTable = New DataTable()
oConnection = _firebird.GetConnection()
oDataAdapter = New FirebirdSql.Data.FirebirdClient.FbDataAdapter($"SELECT * FROM VW_{_selectedTableName}", oConnection)
Private Sub DebugAusToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAusToolStripMenuItem.Click
_logConfig.Debug = False
End Sub
Try
oDataAdapter.Fill(oDataTable)
gridControlTableData.DataSource = oDataTable
Catch ex As Exception
_logger.Error(ex)
MsgBox($"Error while loading data for table {_selectedTable}")
Finally
oConnection.Close()
End Try
Private Sub WriteDebugLogToolStripMenuItem_Click(sender As Object, e As EventArgs)
_logger.Debug("Welcome to monkey island!")
End Sub
Private Sub SpamTheLogToolStripMenuItem_Click(sender As Object, e As EventArgs)
For index = 1 To 100000
_logger.Debug("Spam No. {0}", index)
Next
'Dim dt As DataTable = _firebird.GetDatatable($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {_selectedTable}")
'gridControlTableProperties.DataSource = dt
End Sub
Private Sub NeueTabelleToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueTabelleToolStripMenuItem.Click
@@ -143,6 +155,6 @@ Public Class FrmMain
oForm.ShowDialog()
Dim oTables As DataTable = LoadTables()
CreateTableNodesFromDatatable(oTables, DBFirebird.DatabaseName)
CreateTableNodesFromDatatable(oTables, _firebird.DatabaseName)
End Sub
End Class