Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

Platforms to show: All Mac Windows Linux Cross-Platform

/SQL/MySQL Connect via SSH
Function:
Required plugins for this example: MBS SQL Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /SQL/MySQL Connect via SSH
This example is the version from Fri, 4th Aug 2016.
Project "MySQL Connect via SSH.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open() dim con as new SQLConnectionMBS try sh = new MyShell sh.Mode = 2 sh.password = "xxxxx" sh.Execute "ssh ssh@macsw.de -L 3306:127.0.0.1:3306 -N" while not sh.PasswordSent app.YieldToNextThread sh.Poll wend MsgBox "password sent" // where is the library? // you can place the database client library files where you want. // example code just has some convenient location for testing. con.SetFileOption con.kOptionLibraryMySQL, SpecialFolder.UserHome.Child("libmysqlclient.dylib") // connect to database // in this example it is MySQL, // but can also be Sybase, Informix, DB2 // SQLServer, InterBase, SQLBase and ODBC dim server as string = "127.0.0.1,3306@test" con.Connect(server,"root","",SQLConnectionMBS.kMySQLClient) MsgBox "We are connected!" dim sql as string = "SELECT variable_value INTO @local_hostname FROM information_schema.global_variables WHERE variable_name = 'hostname';" dim cmd as new SQLCommandMBS(con, sql) cmd.Execute if cmd.isResultSet and cmd.FetchNext then MsgBox cmd.Field(1).asStringValue end if // Disconnect is optional // autodisconnect will occur in destructor if needed con.Disconnect msgbox "We are disconnected!" catch r as RuntimeException MsgBox r.message // SAConnection::Rollback() // can also throw an exception // (if a network error for example), // we will be ready try // on error rollback changes con.Rollback catch rr as runtimeexception MsgBox rr.message end try end try End EventHandler
Property sh As MyShell
End Class
Class LogWindow Inherits Window
Control LogTextArea Inherits TextArea
ControlInstance LogTextArea Inherits TextArea
End Control
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
Class MyShell Inherits Shell
EventHandler Sub DataAvailable() dim s as string = me.ReadAll if s.Encoding = nil then s = DefineEncoding(s, encodings.UTF8) end if LogWindow.LogTextArea.AppendText s if instr(s, "Password:") > 0 then me.Write password PasswordSent = true end if End EventHandler
Property PasswordSent As Boolean
Property password As string
End Class
End Project

See also:

Feedback, Comments & Corrections

The items on this page are in the following plugins: MBS SQL Plugin.




Links
MBS FileMaker tutorial videos