Thoughts on Valentina?

When does this expire?

Hi Joe - Omegabundle for Xojo 2013 (the big one, which added the two platforms) is ending soon. We announced previously that it would end at the end of September - and that’s early next week. We haven’t set an end date to the MINI version.

So with this, you can pick any combination of TWO Valentina DB ADK for Xojo from Windows, Mac OS X, Linux. Like picking your Chinese lunch combo :wink:

These platforms are based on your TARGET, not where you are running the IDE. So if you want to compile for Windows, you need Valentina DB ADK for Xojo for Windows, even if you are doing your work on a Linux box.

Ok, so run me through a scenario. If I have Linux as my target and I’m working on a Mac can I run my program in the debugger?

I have asked Ruslan to follow up on your question. How would you debug your regular Xojo program under the same scenario?

The SQLite database works on all three platforms so it’s not an issue. But since Valentina is being sold on a per platform basis then one needs have both the target and the build in mind when making the purchase.

A couple ways

  1. Remote debug it to Linux using the remote debugger stub.
    Xojo builds a Linux executable and sends it to the remote stub which unpacks it & launches it.

  2. Compile on your mac & move the built executable to Linux by hand & run it to test.

Under both scenarios the Linux executable is built on a Mac but run on Linux.

Joseph C, I have been following this thread since the beginning. Have you grabbed the “free” versions yet to test how easy it would be to migrate to Valentina? (trying not to re-read the thread Lol).

I ask because I used to run Valentina and it was somewhat a challenge to go from mysql to Valentina but eventually got it going (plenty of support from Ruslan on the email list got me there). More recently I have been using Cubeql and am considering switching back over to Valentina again since I will be ready to deploy to customers soon and the licensing is pretty reasonable. As a quick look, I re-downloaded the server and v4rb (as its still called) and got started today… Remote debugging to the pc from the mac didn’t work probably because of what Lynn mentioned earlier:

“These platforms are based on your TARGET, not where you are running the IDE. So if you want to compile for Windows, you need Valentina DB ADK for Xojo for Windows, even if you are doing your work on a Linux box.”

So I am assuming I’d need the windows adk installed on my mac. And you’d need the linux adk installed on your mac. Hopefully if I am wrong someone will correct me on this. Otherwise I will find out by tomorrow first hand once I get time to work again.

Thanks for you comments. I didn’t realize they had free versions of the ADK. I got plenty of explanation of the free server.

I downloaded it and here are a couple of observations.

  1. It installs into my user directory. That’s rather unconventional:

  1. The examples aren’t working for me.

I like the idea of Valentina. Reading some pseudo-code on the website comparing it to SQL and the object way sounds terrific. But I’m not experiencing much success getting it off the ground. The problem isn’t that the website doesn’t provide information. The problem is that it provides too much. I don’t need implementation details as a noob. I need installation details and a sample project to fiddle with.

I downloaded CubeSql since it was mentioned in this thread and its user-guide is nicely laid out with simple examples and plenty of graphics that walk you through the process. Much like the cubesql website it’s minimalist with just the information you need. Right now I’m trying out cubeSQL. I plan to give Valentina another look but I need to solve a problem right now and the time horizon for getting Valentina up and running seems long and daunting.

Be sure to try SQLiteManager from SQLabs also. I use it working with some of my CubeSQL servers.

I had trouble initializing valentina and connecting to the server inside my application.
What got me started was checking out V4RB_5/examples/shared/ExampleTools.rbo

I have a method “connecttodb” (myVDB as VRBDataBase is a global property in a module)

I think I pieced the method together from some examples that valentina provides some years back.

[code]Sub connectToDB1()
dim i as integer
dim myhost,mypassword,myusername,mySerial,myDatabaseName as String
dim myport as integer

initValentina( 10 * 1024 * 1024 )

myVDB.Host = “Localhost”
myPassword=“sa”
myUserName=“sa”
mySerial = “”
myDatabaseName = “myVDB.vdb”
myPort=15432

myVDB = new VRBDataBase()
myVDB.Password = mypassword
myVDB.UserName = myusername
myVDB.DatabaseName = myDatabaseName
myVDB.embeddedSerial = mySerial
myVDB.Port = myport
myVDB.ConnectionTimeout = 600

If myVDB.Connect then

//do set up stuff here

else

//deal with failed connection

end if
End Sub[/code]

It calls “initValentina” from the example tools I mentioned earlier in this post. I don’t believe I altered the code in it but here it is (In the interest of sharing all I learned:

[code]Sub InitValentina(inCacheSize as integer)
// THIS IS a HELPER FUNCTION for Examples of V4RB.
//
// THIS function provides logic for Examples that allow you easy switch
// between LOCAL and CLIENT variants.
//
// In your application you will not need such switch-flag.
// You will just use Valentina.Init() or InitClient() or even both.
//
// IF you want to run V4RB examples as LOCAL database then set gClient = false.
// IF you want to run V4RB examples as CLIENT database then set gClient = true.
//
// NOTE: in CLIENT mode you must have VServer running.
// VServer should have use with name “sa” and password “sa”.
// Or you need change login parameters in the MakeNewDatabase() method.
// IF you want to use SSL connection - just set gSSLEnable to true.
// These flags will be used in MakeNewDatabase() helper method.
//
gClient = false
gSSLEnable = false

if( gClient ) then // we are in CLIENT mode for V4RB examples.
//
// ANY Valentina Client of ANY ADK is FREE for use.
// This is why InitClient() do not require any serials.
//
Valentina.InitClient( 10 * 1024 * 1024 )

else // we are in LOCAL mode for V4RB examples.
//
// We specify here empty strings orf MAC, Win, Linux serials.
// You should specify here your serials instead.
//
// NOTE: You may want to use some smart things to split serial or even encode it
// to prevent easy its hacking from your compiled application.
//
Valentina.Init( inCacheSize, “”, “”, “” )

if Valentina.CacheSize = 0 then
  MsgBox "Valentina was not initialized!" 
end if 

end if

//
// During development it is a good idea to ask V4RB plugin produce LOG file.
//
#if DebugBuild
Valentina.DebugLevel =EVDebugLevel.kLogParams
#endif

End Sub[/code]

Btw, .profile failed for me as well for what it’s worth

I also have no idea how to correctly quote in this forum format

I should add that after using those methods I mentioned, I could access myVDB same as I could before using mysql or cubesql, albeit I need to switch over to recid (still in progress) from my current rowid also .fieldschema doesn’t work so I have to pass SHOW COLUMNS FROM MYTABLE statement to a .sqlselect()

It’s worth more than you know. At times I can’t tell if I’ve just run out of patience and missed something or if there really is a problem. A lot of the instructions come across like this:

Hi Guys,

can I ask once again,

  1. there is no big sense to drop into single thread all issues questions and so on you have about Valentina.

  2. I have suggested ask specific questions about this or that example, about this or that SQL command on Valentina list. Then our engineers will be able to read and answer some areas better of me.

  3. Even here on Xojo forum, why not to start separate thread about some example or about some piece of code. It is very hard to follow to this endless single thread. I think for you too. Because we discussed here already a lots of points, from license to db and reports, and how to debug dojo remotely, …

Right now I will try to read and give some answers :slight_smile:

Natasha, we still do not have any bug report from you in our bug tracker. Sergey have spend more of hour in this area, and he was not able reproduce problem with M:M link with any db engine.

[quote=36816:@Norman Palardy]A couple ways

  1. Remote debug it to Linux using the remote debugger stub.
    Xojo builds a Linux executable and sends it to the remote stub which unpacks it & launches it.

  2. Compile on your mac & move the built executable to Linux by hand & run it to test.

Under both scenarios the Linux executable is built on a Mac but run on Linux.[/quote]

I think both this ways will work

Valentina for Xojo contains:
a) plugin V4RB.rbx
b) set of engines as dls located in /usr/local/lib/vcomponents

While you do development, you install to your Mac and Linux V4RB.
This installs /usr/local/lib/vcomponents into system level,
so your just compile debug app, which inlcudes plugin itself is able find and load that dlls.

This means that complexity same as with other plugins, just our plugin yet loads our dlls.

When you ready to deploy, you will need read in Valentina wiki instructions about deployment to this or that OS. Mainly this is about how put that dlls inside of your app, which you will send to users.

[quote=36818:@Joseph Morgan]As a quick look, I re-downloaded the server and v4rb (as its still called) and got started today… Remote debugging to the pc from the mac didn’t work probably because of what Lynn mentioned earlier:

“These platforms are based on your TARGET, not where you are running the IDE. So if you want to compile for Windows, you need Valentina DB ADK for Xojo for Windows, even if you are doing your work on a Linux box.” [/quote]

I think you need simple download V4RB_WIN installer, and run it on your windows.

Note, that V4RB.rbx plugin, which you drop into Xojo/plugins on Mac, contains only 1Mb plugin for each OS inside of .rbx
* v4rb_carbon.dylib
* v4rb_cocoa.dylib
* v4rb.so
* v4rb.dll

So if you move such compiled app to other OS, which do not have installed vcomponents, of course it will not work

Please confirm, that after installation of vcomponents to your windows, remote debugging works.

P.S. also note, that Valentina engine for all ADKs is able work without any serials 10 min. After 10 min, any index operation will throw exception. This means that it is not important what we sale. Engine will work 10 min. Without serials. If it not works, problem is not in serials, but in some not found dlls or such.

Not on Mac, but on your Windows, where you try to start debug app.

[quote=36858:@Ruslan Zasukhin]I think both this ways will work

Valentina for Xojo contains:
a) plugin V4RB.rbx
b) set of engines as dls located in /usr/local/lib/vcomponents

While you do development, you install to your Mac and Linux V4RB.[/quote]

That’s a little different than most plugins.
For me to use something like one of our database plugins on the linux machine I dont have to preinstall anything on the linux machine.
I just remote debug & the Mac builds the app & sends whats required to the linux machine - libraries & all.
I dont have to preinstall anything.

[quote=36830:@Joseph Claeys]Joseph Morgan Have you grabbed the “free” versions yet to test how easy it would be to migrate to Valentina? (trying not to re-read the thread Lol).

Thanks for you comments. I didn’t realize they had free versions of the ADK. I got plenty of explanation of the free server.[/quote]

On HOME page of our site you can see list of FREE staff from us:

  1. Valentina Studio
  2. Valentina DB+Report Server with 5 connections (not for deployment)
  3. DB clients
  4. iValentina (iOS GUI Manager of VSERVER)

When you have some VServer, you can download ANY AND ALL our Valentina ADK.

* Each ADK contains   Valentina Client DLL 
* Valentina Client always is FREE.

So you can install VServer 5 - FREE
You can download Valentina Studio FREE

You can download V4RB - and use it for FREE with that VServer/5 working with DB. Reports design require VS PRO.

In the same time you can download VPHP or C# or C++ or Java versions of Valentina ADK,
and develop other apps around that VServer.

We know teams which did such combined solutions RB + PHP apps around VSERVER.

[quote=36862:@Norman Palardy]That’s a little different than most plugins.

For me to use something like one of our database plugins on the linux machine I dont have to preinstall anything on the linux machine.
[/quote]

Don’t you need to have pre-installed mySQL or PostgreSQL? :slight_smile:

Comparing to SQLite, yes, this is a little more complex.

As complex as double click on Installer and yet may be few clicks. You need do this once.
then you can work few months…

[quote=36862:@Norman Palardy]I just remote debug & the Mac builds the app & sends whats required to the linux machine - libraries & all.
I dont have to preinstall anything.[/quote]

This is because Valentina for RB plugin contains
- NOT single engine, as do plugin of SQLite.
- NOT single client library, as do mySQL/postgreSQL plugin
- reports - nothing to compare

“Valentina for Xojo ADK” contains 3 engines in the same time.

Well, more power and features, more dances.

P.S. We did consider way, when everything is inside of .rbx

  • But this is much more harder to produce technically,
  • I did not read that RB is able contains additional dlls inside of plugin format
  • this will produce HUGE rbx file 60-80MB

Not a fact this way will be better.

That can be on yet another machine.
I might have 3 machines involved

  1. my work machine (a mac)
  2. the machine that will ultimately run my application (a linux machine)
  3. the database server machine (mac, linux or windows)
    and machine #2 does not require PostgreSQL or mySQL installed on it to use the client

Just something to keep in mind that complicates developers lives a bit.

[quote=36830:@Joseph Claeys]2. The examples aren’t working for me.
[/quote]

All examples?
then did you drop .rbx file into plugins folder?

Joseph, When you will be ready, you can contact me by email, then we can go into Skype + TeamViewer session, to help you start working.