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/SQLite Backup
This example is the version from Sat, 27th Sep 2019.
Project "SQLite Backup.xojo_binary_project"
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/test2.db" // put the database in the temporary folder
else
path = "test2.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 b As SQLite3BackupMBS = con.SQLiteBackupInit(conBackup, "main", con, "main")
if b<>nil then
While con.SQLiteBackupStep(b, 100) = 0 // kErrorOk
// show progress
wend
If con.SQLiteBackupFinish(B) = 0 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:
- /SQL/SQLite Connect in Memory Database
- /SQL/SQLite Encryption Fetch values
- /SQL/SQLite ExecuteSQL with Parameters
- /SQL/SQLite Fetch rows bulk
- /SQL/SQLite Fetch values
- /SQL/SQLite Internal Library Compiler Options
- /SQL/SQLite Lock Test/SQLite Busy Handler
- /SQL/SQLite select version
- /SQL/SQLite Update values
- /SQL/SQLite with ICU
The items on this page are in the following plugins: MBS SQL Plugin.