Switch to: V10V9V8V7V6V5

Valentina Release 4.0 Notes

Backward Compatibilities

  • Version 4 of Valentina engine does not change format of database files.
  • SQL Commands “SHOW Something” was polished to always return table with field names of kind 'fld_something'. The result of this nice step is broken compatibility between VStudio v4 and VServer v3 because VStudio uses these commands a lots.
  • Client/Server protocol is extended to support new VProject and VReport classes of Valentina API. If v4 client do not use new commands then it should be able work with v3 VServer. Anyway remember rule - better keep client and server of the same version if possible.

New Features and Improvements

Valentina Reports

Main new feature of Valentina 4.0 are REPORTS.

Into Valentina Engine added a new component – VREPORT.DLL, which contains report engine. This DLLs is integrated into practically all Valentina products: Valentina Studio, Valentina Server, Valentina ADKs.

Paradigma also introduces a new product - Valentina Studio PRO, which get powerful Report Editor. You can read detailed description of its features here. Also VS PRO gets new window to manage Valentina Projects - container of reports and other items. Reports are designed in VStudio PRO and stored in a single .vsp file of Valentina project.

Later reports can be used in any Valentina ADK as easy as a couple lines of code. This allows you to create business-level application in your favorite IDEs.

But even better! Now Valentina Server is not just Database Server, but also a Report Server! VServer now can open and manage Valentina Projects files (.vsp) in the same way as database files. Valentina SQL extended by few commands to manage PROJECTs. As result you can manage reports on server side. You can even connect to remove Valentina Server from visual designer of VStudio, open some report from project, edit it and save. Immediately after this all users of this VSERVER will start get modified report.

As you can see, Valentina gives you very flexible solutions, as always. Your, e.g. RB or C# application can generate REPORTS as on client side so on server side. Server side reports are especially nice if you have thing client, e.g. iPhone.

VKERNEL Functions

  • [NEW] UUID() – function that returns 16 byte unique value
  • [NEW] get_fields_as_string() – function to concat all fields values to the string
  • [NEW] Last_RecID_Of_Table(tblName) - return the last inserted recID for particular table
  • [NEW] Current_UserID()
  • [NEW] List_ItemCount( inList as string [, inDelimiter as string] )
  • [NEW] List_NthItem( inList as string, inItemIndex as integer [, inDelimiter as string] )

VKERNEL SQL

  • [NEW][SQL] SELECT … FOR XML [RAW|AUTO ELEMENT] – produce XML output inside of TEXT Field of returned cursor.
  • [NEW][SQL] SELECT … FOR REPORT project.report AS {PDF|HTML|JPG} PAGES start TO end
  • [NEW][SQL] Correlated sub-queries implemented.
  • [NEW][SQL] CREATE/DROP USER command
  • [NEW][SQL] GRANT/REVOKE commands
  • [NEW][SQL] SHOW GRANTS
  • [NEW][SQL] DROP CONNECTIONS
  • [NEW][SQL] REGISTER/UNREGISTER DATABASE
  • [NEW][SQL] REGISTER/UNREGISTER PROJECT
  • [NEW][SQL] CREATE/OPEN/CLOSE PROJECT
  • [NEW][SQL] SHOW PROJECT
  • [NEW][SQL] SHOW VERRORS
  • [NEW][SQL] SHOW VIDENTS
  • [NEW][SQL] SET var = GET PROPERTY X [OF Y] syntax for Stored Procedures
  • [NEW][SQL] Dynamic cursor declaration

DECLARE query String(200);
SET query = 'select f1 from t1;';
DECLARE cursor_name CURSOR FOR query;

  • [Impr][SQL] CREATE EVENT now have [OR REPLACE] part.
  • [Impr][SQL] CREATE DATABASE [IF [NOT] EXIST] db_name [WITH SET PROPERTY property_name_list OF DATABASE TO property_value_list]
  • [Impr][SQL] Ability of using aggregative function in the having clause for pointing out the group by result column:

-- did work this only:
SELECT st_level, max(st_level) AS 'f2' FROM Students GROUP BY st_level HAVING f2 > 2
 
-- now works this also:
SELECT st_level, max(st_level) AS 'f2' FROM Students GROUP BY st_level HAVING max(st_level) > 2

  • [Impr][SQL] Joins on Recursive tables for FK and ObjectPtr links now take into account order of fields in the join-condition:

-- these queries will produce different results choosing direction ToChilds or ToParents.
FROM t1 a1 JOIN t2 a2 ON a1.RecID=a2.ptr JOIN t2 a3 ON a3.RecID=a2.parentptr
FROM t1 a1 JOIN t2 a2 ON a1.RecID=a2.ptr JOIN t2 a3 ON a2.RecID=a3.parentptr

  • [Impr][SQL] Joins on recursive link specified by name now can choose ToParent or ToChild direction using following syntax:

ON ( link_name [ParentDirection | ChildDirection] )

VSERVER

  • [NEW][INSTALLER] reuse existed INI file in case you do upgrade into the same folder of VServer to preserve current settings of VSERVER.
  • [NEW][LOG] timestamp in the name added. As result, on restart a new LOG file is created instead erasing existing.
  • [NEW][SQL] Local temporary tables - a user doing CREATE TABLE T do not conflict with another user doing the same table.
  • [NEW][SQL] SET PROPERTY OF CONNECTION
  • [NEW] Pool of connections – if user connects to VServer but not free connections, this connection can wait for MaxConnectionTimeout before refuse.
  • [NEW][INI] MaxConnectionTimeout parameter. Connection timeout parameter.
  • [NEW][INI] MaxTransferTimeout
  • [NEW][INI] SystemProjectCatalog
  • [NEW][MAC] VServer now is managed by LaunchDeamon
  • [NEW][MAC] Added few helpful AppleScripts to manage VServer's start/stop/restart, Show In Finder.
  • [NEW][Lin] Creation of pidfile when VServer starts.
  • [Impr][Lin] Scripts of VServer to restart.

Valentina Studio Pro

  • [NEW][GUI] Window Project
  • [NEW][GUI] Report Editor

Valentina for Cocoa

  • [NEW][API] Class VProject
  • [NEW][API] Class VReport
  • [NEW][API] Class VQueryResult
  • [NEW][API] Valentina.GetLocalConnection()
  • [NEW][API] VConnection.SqlExecute()
  • [NEW][API] VConnection.SqlQuery()
  • [NEW][API] VConnection.SqlSelect()
  • [NEW][API] VDatabase.Connection
  • [NEW][API] VDatabase.SqlQuery()

Valentina for COM

  • [NEW][API] Class VProject
  • [NEW][API] Class VReport
  • [NEW][API] Class VQueryResult
  • [NEW][API] Valentina.GetLocalConnection()
  • [NEW][API] VConnection.SqlExecute()
  • [NEW][API] VConnection.SqlQuery()
  • [NEW][API] VConnection.SqlSelect()
  • [NEW][API] VDatabase.Connection
  • [NEW][API] VDatabase.SqlQuery()

Valentina for Director

  • [NEW][Xtra] VProject
  • [NEW][Xtra] VReport
  • [NEW][API] Valentina.GetLocalConnection()
  • [NEW][API] VConnection.SqlSelect()
  • [NEW][API] VConnection.SqlQuery()
  • [NEW][API] VConnection.SqlExecute()
  • [NEW][API] VDatabase.Connection

Valentina for .NET

  • [NEW][API] Class VProject
  • [NEW][API] Class VReport
  • [NEW][API] Class VQueryResult
  • [NEW][API] Valentina.GetLocalConnection()
  • [NEW][API] VConnection.SqlExecute()
  • [NEW][API] VConnection.SqlQuery()
  • [NEW][API] VConnection.SqlSelect()
  • [NEW][API] VDatabase.Connection
  • [NEW][API] VDatabase.SqlQuery()

Valentina ODBC Driver

  • [NEW][Lin] Standalone driver for Linux
  • [NEW][Lin] Client-only driver for Linux

Valentina for PHP

  • [NEW][API] VBinaryValue class – allows send binary data via SQL Binding.
  • [NEW][API] bool valentina_trace_mode( [bool] )
  • [NEW][API] bool valentina_throw_exceptions( [bool] )
  • [NEW][API] class VProject
  • [NEW][API] class VReport

Valentina for REALbasic

  • [NEW][API] Class VProject
  • [NEW][API] Class VReport
  • [NEW][API] Class VQueryResult
  • [NEW][API] Valentina.GetLocalConnection()
  • [NEW][API] VConnection.SqlExecute()
  • [NEW][API] VConnection.SqlQuery()
  • [NEW][API] VConnection.SqlSelect()
  • [NEW][API] VDatabase.Connection
  • [NEW][API] VDatabase.SqlQuery()
  • [NEW][API] Constructor VDatabase( inRbDatabase as VRBDatabase ) - bridge from RBDB way to Valentina API way.

Valentina for Revolution

  • [NEW][API] Class VProject
  • [NEW][API] Class VReport
  • [NEW][API] Class VQueryResult
  • [NEW][API] Valentina_GetLocalConnection()
  • [NEW][API] VConnection_SqlSelectRecords()
  • [NEW][API] VConnection_SqlExecute()
  • [NEW][API] VConnection_SqlQuery()
  • [NEW][API] VConnection_SqlSelect()
  • [NEW][API] VDatabase_Connection property
  • [NEW][API] VDatabase_SqlQuery()
  • [NEW][Example] SQL_way/Field_Pictures

CHANGES (!!!)

Windows Installers

To be compatible with Windows Vista, we should move folders as V4MD_4, V4RB_4 and so on from “Program Files/Paradigma Software” folder to “My Documents/Paradigma Software” folder.

VSERVER

Valentina Server v4 now uses LaunchDeamon to control start/stop of VServer. Thanks to this there is no need in the restart of computer after the installation. Valentina Server will be running right after finish of installer.

Fixes

Please check ChangeLog in our Mantis bug tracker to see complete list of fixes for different Valentina products.