Platforms to show: All Mac Windows Linux Cross-Platform
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.xojo_binary_project"
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:
The items on this page are in the following plugins: MBS SQL Plugin.