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/SQLite Backup
Function:
You find this example project in your Plugins Download as a Xojo (Real Studio) project file within the examples folder: /SQL/SQLite Backup
This example is the version from Thu, 6th Apr 2016.
Project "SQLite Backup.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open() // use internal sqlite library call InternalSQLiteLibraryMBS.Use dim con as SQLConnectionMBS dim cmd as SQLCommandMBS dim conBackup as SQLConnectionMBS try con = new SQLConnectionMBS // connection object cmd = new SQLCommandMBS // create command object conBackup = new SQLConnectionMBS // connection object // where is the library? 'con.Option(con.kOptionLibrarySQLite) = "/usr/lib/libsqlite3.0.dylib" 'conBackup.Option(con.kOptionLibrarySQLite) = "/usr/lib/libsqlite3.0.dylib" // connect to database dim path as string if TargetMacOS then path = "/tmp/test.db" // put the database in the temporary folder else path = "test.db" // for Windows and Linux in the current folder the application is inside. end if con.Connect(path,"","",SQLConnectionMBS.kSQLiteClient) // associate a command with connection // connection can also be specified in SACommand constructor cmd.Connection=con // create table cmd.setCommandText("Create table test_tbl(fid integer, fvarchar20 varchar(20), fblob blob)") cmd.Execute // insert value cmd.setCommandText("Insert into test_tbl(fid, fvarchar20) values (1, 'Some string (1)')") cmd.Execute // commit changes on success con.Commit MsgBox("Table created, row inserted!") // now do backup if TargetMacOS then path = "/tmp/testbackup.db" // put the database in the temporary folder else path = "testbackup.db" // for Windows and Linux in the current folder the application is inside. end if // connect to new database conBackup.Connect(path,"","",SQLConnectionMBS.kSQLiteClient) // run backup dim s as SQLite3MBS = con.NativeAPI dim b as SQLite3BackupMBS = s.BackupInit(conBackup, "main", con, "main") if b<>nil then while s.BackupStep(b, 100) = s.kErrorOk // show progress wend if s.Backupfinish(B) = s.kErrorOk then MsgBox "backup okay" end if else MsgBox "Failed to start backup." end if catch r as SQLErrorExceptionMBS // SAConnection::Rollback() // can also throw an exception // (if a network error for example), // we will be ready try // on error rollback changes if con<>nil then con.rollback end if catch x as SQLErrorExceptionMBS // ignore end try // show error message MsgBox r.message end try End EventHandler
End Class
Class Window1 Inherits Window
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
End Project

See also:

Feedback, Comments & Corrections

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




Links
MBS Xojo Plugins