Platforms to show: All Mac Windows Linux Cross-Platform

/SQL/SQLite Blob test


Required plugins for this example: MBS Main Plugin, MBS SQL Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /SQL/SQLite Blob test

This example is the version from Sun, 20th Aug 2016.

Project "SQLite Blob test.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open() // use built in library call InternalSQLiteLibraryMBS.Use dim con as new SQLConnectionMBS try // where is the library? '#if TargetWin32 then 'con.Option(con.kOptionLibrarySQLite) = "sqlite.dll" '#elseif TargetLinux 'con.Option(con.kOptionLibrarySQLite) = "sqlite.so" '#elseif TargetMachO then 'con.Option(con.kOptionLibrarySQLite) = "sqlite.dylib" '#else '? '#endif // 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) // create table con.SQLExecute "Create table if not exists BlobTest(ID integer PRIMARY KEY AUTOINCREMENT, name varchar(20), image blob)" // insert blob dim pic as Picture = LogoMBS // we use MemoryBlock here to avoid conversion to string 'dim jpegData as string = pic.GetData(Picture.FormatJPEG, 80) dim jpegData as MemoryBlock = pic.GetData(Picture.FormatJPEG, 80) dim sql as string = "Insert into BlobTest(name, image) values (:name, :image)" dim cmd as new SQLCommandMBS(con, sql) cmd.Param("name").setAsString "logo.jpg" cmd.Param("image").setAsBlob jpegData cmd.Execute // query cmd = new SQLCommandMBS(Con, "SELECT * FROM BlobTest") cmd.Execute while cmd.FetchNext dim Data as string = cmd.Field("image").asBLobString dim name as string = cmd.Field("name").asStringValue dim ID as string = cmd.Field("id").asStringValue dim w as new PicWindow w.Backdrop = picture.FromData(data) w.Title = name+" "+ID w.show wend // Disconnect is optional // autodisconnect will ocur in destructor if needed con.Disconnect 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
End Class
Class PicWindow 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:

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


The biggest plugin in space...