' Gambas module file

Public $Connection As New Connection
Public $hResult As Result
Public $Host As String
Public $Password As String
Public $Port As String
Public $User As String
Public $bSchemaOk As Boolean = True
Public $hFTables As FTables
Public $hFNewTable As FNewTable
Public $hFNewView As FNewView
Public $hFNewDatabase As FNewDatabase
Public $hFNewIndex As FNewIndex
Public $hFNewRoutine As FNewRoutine
Public $hFMessage As FMessage
Public $hFNewTrigger As FNewTrigger
Public $hFNewField As FNewField
Public $hFNewEvent As FNewEvent
Public $hFConnect As FConnect

Public Procedure Main()

  $hFConnect = New FConnect
  If $hFConnect.ShowModal() Or Not $Host Or Not $Password Or Not $Port Or Not $User Then Return
  With $Connection
    .Type = "mysql"
    .Name = "mysql"
    .Host = $Host
    .Password = $Password
    .Port = $Port
    .User = $User
    .Open()
  End With
  If Not $Connection.Opened Then Return
  If CInt($Connection.MySQL.Version.MinorVersion()) < 1 Then
    $bSchemaOk = False
    Message.Warning(("Seems that your MySQL version is lower than 5.1.\ntherefore you will get some error and warning messages."))
  Endif
  Try $Connection.MySQL.Use(Settings["/General/LastDatabase", "mysql"])
  $hFTables = New FTables
  $hFTables.ShowModal()
  Catch
    Message.Error(Error.Where & "::" & Error.Text)

End

Public Procedure Error(Optional Message As String)

  Dec Application.Busy
  If Error.Text Like "*MySQL server has gone away" Then
    $Connection.Close()
    $Connection = Null
    $Connection = New Connection
    With $Connection
      .Type = "mysql"
      .Name = "mysql"
      .Host = $Host
      .Password = $Password
      .Port = $Port
      .User = $User
      .Open()
    End With
  Endif
  If Not Message Then Message = Error.Where & "::" & Error.Text
  modMain.$hFMessage = New FMessage(Message)
  modMain.$hFMessage.ShowModal()

End
