Latest Publications

IOEncoding usage in V4REV

Assume there is some “not-latin” text  (it could be russian or umlauts or something similar). And we have to store it to the Valentina database and then read it back.

(more…)

New LogFilesLocation property

There is a new property – LogFilesLocation for both server and local.
It defines a folder where the logs should be placed in.
Default folder is “./vlogs”

(more…)

MAC 64 bits – introducing vcomponents_x64 for ADKs/x64

Yesterday I have try to make installer of VPHP_Standalone_x64, which could be our first 64-bit ADK,  and have realize that it is not good idea keep in the same /usr/local/lib/vcomponents both 32 and 64 bit DLLs.

(more…)

Renew Before Expiration for Discounted Pricing

Last year, Paradigma Software announced a grace period to go along with changes to the upgrade policy. The grace period on updates will finish on July 1, 2010. Each purchase or update of a Valentina DB product includes 12 months of free updates including any fixes, improvements and new features.

(more…)

vClient becomes thread-safe

Now you should not synch vClient API calls  - vClient do it self and you are free to access and operates with vClient’s remote objects from different threads similiangly.

In particular, vStudio operates with remote connections via multiple threads  and it was a source of some glitches and unexpected errors especially with a long queries.  Now there are no more errors like “EOF reached…” or “Broken packet received…” which were result of incorrect thread synch.

Altering ObjectPtr

ObjectPtr field contains RecID values of some “target” table. If you need to change ObjectPtr in order to point another table those values are not valid anymore – so default behavior is to nullify them.  But sometime it looks to be too strong. For instance - changing  field or link name or on-delete policy should not cause such data zeroing.

There are two ways to keep existed values altering ObjectPtr:

  1. There is a global property – OnChangeTypeZeroPtr. It is set to true by default. But you may change it with following statement – “SET PROPERTY OnChangeTypeZeroPtr TO false”. After this altering ObjectPtr will prevent zeroing data (sure it will be nulls for records which are absent in the new target table).  This property is not “schema-storable” – so you should set it up on each run if you need it.
  2. The first approach is a global setting – so you will be able to keep some ObjectPtr values even changing “target” table. So we implement one more way – much more simple because the only thing you should keep in your mind is – the values will be preserved until you touch “target table” ObjectPtr property (because all values will be valid for the same target anyway).

Paradigma Software Sponsoring Portland Code Camp 2010

Paradigma Software is a truly international company, but it also has strong roots in the great Northwest – the Silicon Forest area including the greater Portland area.  Paradigma Software is proud to be a sponsor for Portland Code Camp 2010. (more…)

Changes in Valentina for Cocoa API.

Erne have report bug http://www.valentina-db.com/bt/view.php?id=4885 in Valentina for Cocoa (V4CC).

Problem was that VField.value in ObjC implemented as pair of methods (in other Valentina ADKs, e.g. Valentina for REALbasic it is a true property of class). So if to override this pair in the sub-classes then always will be called overridden methods.

To resolve issue, we have decide to rename these methods in all VField sub-classes. Rules now are simple:

(more…)

NEW Function Added: hash MD5()

Ivan have implement today MD5() function, which can be used in EXPRESSION of Valentina SQL.

Bart have asked this function to be able produce UNIQUE INDEX for strings/texts bigger of 128 chars. This limit comes from fact that indexes of Valentina use pascal-like storage format for strings, e.g. 256 bytes maximum, 128 for UTF16.

SPEED of DB Open for Database with 1000+ Tables: -20 sec

44 Seconds for that 1023 tables DB still not looks good for me, and I have continue search for ways to improve it. And after one more day of work time have go down to 34 sec from original 54.

And this new optimization is even better! It is also made on INDEX-level and affects absolutely ANY index search operation!! Especially we will see effect for searches that return many records into Set.

I see yet two possible steps to optimize speed of open for database.
* [minor] – …
* [major] – start to cache data in the algorithms that read schema from recursive sysItem table.

Target is to make time few seconds only.