Switch to: V12V11V10V9V8V7V6V5

Xojo: Migration to Valentina SQLite Server

On this page, we will show how easy it really is to switch an existed Xojo project, that uses a built-in SQLite database to Valentina SQLite Server.

  • Project of this tutorial ready for use can be found in V4RB/Examples/BRDB_way/SqliteExampleModified folder.
  • This tutorial exists as video on yuotube.

Step

We will use example “Xojo/Example Projects/Database/SQLite/SQLiteExample.xojo_binary_project” to modify it. Let`s copy it, for example, to the Desktop and open in Xojo.

Add Init/Shutdown Valentina

To start working with Valentina plugin we should add one or few of its initialization methods:

  • Valentina.Init() to use local Valentina DB engine.
  • Valentina.InitReports() to use local Valentina Reports engine.
  • Valentina.InitClient() to access Valentina Server (never mind what you are going to use: Valentina DB, SQLite DB, Reports).

In this example, we are going to access Valentina Server as SQLite Server. So let's add in Application class a new event handler Open().

Note: Valentina.DebugLevel is a V4RB feature to log all function calls to plugin and their parameters. Used usually only for DebugBuilds.

Also, we should shut down the Valentina plugin using one of 3 shutdown methods. Let's add to Application class a new event handler Close().

Window

Click SQLiteWindow to see it.

Add checkbox 'ClientMode'

We will make this application to be able to work in both modes Local and Client!

To choose a mode let's add checkbox ClientMode on the top of the window with default value = False

Please notice, that in real life app, you will use, most probably, some boolean flag instead visual checkbox.

Method Create SQLite DB

Double click button “Create SQLite DB” to see its method, which creates local SQLite db in the original example of Xojo.

Change App.DB to VSQLiteDatabase

In the above method, we can see that the original code uses

App.DB = new SQLiteDatabase

Instead, we should use VSQLiteDatabase class from V4RB plugin. For this click property DB in the App class

and change its type in the inspector to VSQLiteDatabase:

Change Method

Now we can change the method itself as following:

Run Application in the LOCAL Mode

At this point you can try to RUN this modified project in LOCAL mode, to see that it still works using built-in SQLite engine of Xojo.

Run Application in the CLIENT Mode

Let's open the folder of Valentina Server to see later that database will be created in the folder 'databases_sqlite'.

  • You can use prefs panel Valentina Servers to open it.
  • Or just go directly to VServer folder. On Mac OS this is '/Library/VServer_x64'. On Windows '\Program Files\Paradigma Software\VServer'.

Now let's start the application again. But at first click checkbox 'ClientMode' and then click all 4 buttons. You will see that application still works, and you see the correct results:

Again let's look into Valentina Server folder. This time you will see a new folder 'databases_sqlite' with database 'example.sqlite'.

Resume

We needed only

  • 2 events in App
  • about 10-12 lines of code

to convert the EXISTING SQLite Example of Xojo to Valentina SQLite Server.

The same amount of job you will need for projects of any size because you only need correct db create/open/connect code.

See Also