New Docs About ENUM Type in v5.0

Today I added new reference pages to the wiki of e.g. SQL grammar about a new feature of Valentina DB for 5.0: the ENUM type.

This is the first step towards a CREATE TYPE command based on the SQL 2003 standard. Next we can add composite types, collection types and inheritance.

We think that Valentina can have a more effective and flexible ENUM implementation compared to PostgreSQL or mySQL. One example is that Valentina can use 1 byte to store an enum value, while mySQL – 2, PostgreSQL – 4.

We are finishing now integration of this feature into Valentina Studio for both Valentina DB and PostgreSQL plugins. Database types in Valentina Studio are supported through a plugin architecture.

These are major entry points in the Valentina Wiki to check:

VStudio:Report Editor – Now works with PostgreSQL as Datasource.

Valentina Studio Pro’s Report Editor now works using a PostgreSQL database specified as datasource! If have some Postgre database, connect to it and start design new report using data of that database. You can instantly preview your data right within Valentina Studio Pro. Reports are saved into a project format so you can reuse them at any time.

You can already use design reports this way from data from any Valentina DB ADK (REALbasic, Revolution, Cocoa, NET, PHP, … ). You can see few snapshots below.

Support for PostgreSQL will be included in Valentina Studio 5.0b1 – coming real soon. Valentina Reports will be able to work with local Valentina databases, Valentina Server hosted databases, local SQLite and now with PostgreSQL server.

Continue reading VStudio:Report Editor – Now works with PostgreSQL as Datasource.

Valentina Office Server /5 Now Free

Valentina Office Server is a combined database and enterprise ready reports server from Beaverton, Oregon-based Paradigma Software. Almost any individual or organization can now get a free copy of it -actually, up to three copies – one for each operating system: Linux, Windows and Mac OS X.

With all the FOSS databases around, why Valentina? For one, you get an awesome reports server, and I have yet to come across a FOSS reports system to beat it. On the database end, Valentina is an extremely fast and modern columnar database. It can do so many things you won’t find in FOSS products.

The response to this release has been phenomenal. As people write in Ill be posting additional posts clarifying the program.

Deprecated VPHP and VODBC client-only Archives

Historically, we have developed at first VPHP as client-only ADK of Valentina Server. Later we have add vphp_standalone version of archives, which included the whole Valentina engine, and can work without VServer. Actually we have this for all other Valentina ADKs, such as V4RB, VNET, V4REV, …  But for VPHP we have got two archives, where others ADKs did have one.

The same did happens with VODBC ADK …

For 4.9.1. release we have decide “resolve” this issue. Now on FTP present only “standalone” full archives, but they are renamed to just vphp_4 style.

[DEPRECATED] I_Field::put_ID()

We have note that put_ID() should not be in the public interfaces of Schema Objects, because developer should not be able change ID of a scheme object.

We have check our sources, and found that only I_Field interface did have such method. So we move it into internal I_FieldEx interface. In the C++ header this method marked as DEPRECATED, and do nothing now. We believe that nobody from C++ developers have used it.

We will consider future ability to do “SET PROPERTY ID of Object name” via SQL, but this will be recommended for use by our own SQL scripts only.

[NEW] VLink.Count Property

We have discover that interface of VLink miss Count property to easy ask VLink how much pairs it contains.

Now this property is implemented in the vkernel. It works for all kinds of links (Binary, ObjectPtr and ForeignKey). It is implemented in effective way — only header of index is asked actually.

Adding of this property do minor extension of VSERVER protocol also.

[NEW][C++] set of MACROS as GET_STRING( cursor, field_name)

Problem is that if you are a C++ developer and use VSDK for development,
then work with Values of Fields of cursor looks as:

I_Cursor_Ptr pCursor = db->SqlSelect( ... );
...
 String s = pCursor->get_Field("Name"  )->get_Value()->get_String();
 double d = pCursor->get_Field("Weight")->get_Value()->get_Double();
...

In contrast, for such languages as REALbasic or VB syntax is more short:

  String str = pCursor.StringField( "fldName" ).value

We have decide that for C++ developer we can have set of simple macros that will allow C++ developer syntax as:

  String str = GET_STRING( pCursor, "fldName" );

These macros are located in the:  sources/FBL/VShared/VSQL/publ/Interfaces/VSQL_I_Cursor.h

Note, that more complex values as DateTime, Binary, still should be used in old way, because VSDK do not know format you goingto use. May be you can add own macroses in your project that looks similar and do job you need.

[NEW][C++] Family of toValue_xxx() factories for simple SQL binding

Now C++ developer can write simpler code as

ArrayOfValues_Ptr pValues = new ArrayOfValues();
        pValues->AddItem( toValue_varchar(mName) );
        pValues->AddItem( toValue_double(70.5) );
        pValues->AddItem( toValue_long(size) );

Instead of:

ArrayOfValues_Ptr pValues = new ArrayOfValues();

       Value_varchar* pValueName = new Value_varchar();
       pValueName->put_String( mName.begin(), mName.end() );
       pValues->AddItem( pValueName );

       Value_double* pValueD = new Value_double();
       pValueD->put_Double( 70.5 );
       pValues->AddItem( pValueD );
       ...