Monthly Archives: March 2014

9.1 – beta 6 released

The 6th beta is out today (March 27). There are ~50 fix/changes/new features added to this release. We expect that next week we’ll make a final pre-release available to all users. You can view the complete list here.
Some of the new features in this release –

  • New WindowManager method ModalEvent added that can be used to test if the current event is modal or not
  • The ODBC driver now supports generating JOIN structures where the the column names in the ON clause of the outer join are in the same order as their respective table names in the OUTER JOIN clause
  • The ODBC interface to TPS now supports LEFT OUTER JOIN clauses on the left hand as well as the right hand side of a join. If a join is on the left hand side, then it must be enclosed in brackets
  • a new XMLWriter class to easily write new XML files

9.1 – beta 5 is out

Yesterday (March 13) we released an updated beta version.  We are getting close to a general release and we’ll know better after the beta testers have had a few days to work with this release.

On the topic of conversions between LONG and TIME data types we introduced two new Pragmas. You can control how the conversions between a TIME field and a LONG are handled using these PRAGMA settings:

PRAGMA (‘define(time0=>off)’) or PRAGMA (‘define(time0=>on)’)

PRAGMA (‘define(sqltime0=>off)’) or PRAGMA (‘define(sqltime0=>on)’)

Summary of behavior when these pragmas are set on/off:

PRAGMA (‘define(time0=>off)’)

This is the default value. TIME(0) is converted to 1 (TIME:MIDNIGHT), i.e. mid-night to mid-night.

PRAGMA (‘define(time0=>on)’)

The compiler generates code to convert TIME(0) to 0 (TIME:NOTIME).

PRAGMA (‘define(sqltime0=>off)’)

This is the default value. The compiler does nothing additional for fields of SQL tables having the TIME data type.

PRAGMA (‘define(sqltime0=>on)’)

If the TIME value to convert is a field of a FILE, the compiler generates a call to the NULL function. If the result from the NULL() function is TRUE (field has a NULL value), the TIME field is converted to 0 (TIME:NOTIME) value. Otherwise, conversion is controlled by the define(time0) pragma.

It is easiest to set the PRAGMA to the desired value at the Project level (Project Properties) But PRAGMA directives can be set before any line in your code where TIME value is being used in an expression converting TIME to LONG).

Related; All SQL drivers have been updated so that a call to NULL(datefield) or NULL(timefield) will return TRUE if they are part of a DATE/TIME Group, and the corresponding column on the server is NULL.