This document may be updated after the release. Download the latest version from the Actian website.
Time Stamp Data Types
This release increases the scale available for TIMESTAMP and adds support for the new data type TIMESTAMP2.
You can now specify a scale for a TIMESTAMP column from 0 (no fractional seconds) to 7 (10-7 septaseconds). When you use explicit scale, such as TIMESTAMP(3), the storage and the default display will match. TIMESTAMP columns without explicit scale continue with their legacy behavior, which is to store septaseconds but to display with millisecond precision. The ZenCC mechanism for displaying time values is fixed at milliseconds. For more information, see TIMESTAMP.
TIMESTAMP2 tracks time in nanoseconds for file formats 9.5 and 13.0. In SQL applications, you can use this data type to stamp a record with the current time and date of the last update to the record. Values are stored in 8-byte unsigned values with a default scale of 9, representing nanoseconds (10-9 second), to match the AUTOTIMESTAMP data type. As with TIMESTAMP, when you create a SQL column you can choose the scale, which for this type ranges from zero to 9. For more information, see TIMESTAMP2.
The AUTOTIMESTAMP data type is now supported in SQL in addition to its Btrieve key type.
Time and Date Scalar Functions
This release introduces new scalar functions for time and date:
•SYSDATETIME() returns the current local date and time as a time stamp value displayed in the format 'yyyy-mm-dd hh:mm:ss.nnnnnnnnn'. This function can apply the time zone offset to display local time.
•SYSUTCDATETIME() returns the current local date and time as a time stamp value displayed in the format 'yyyy-mm-dd hh:mm:ss.nnnnnnnnn'. This function returns UTC time.
•The existing SYSDATETIMEOFFSET() function has been updated to support the nanosecond scale for use with these new scalar functions.
SYSDATETIME()
Returns the current local date and time as a time stamp value in the format 'yyyy-mm-dd hh:mm:ss.nnnnnnn'.
Uses the local clock time by default. Precision is septaseconds on Windows and microseconds on all other platforms, with the last digit always zero on all other platforms. If SET TIME ZONE has been called, then the value of SYSDATETIME() is determined by calculating UTC time and date from the system clock and operating system locale setting, then adding the offset value from SET TIME ZONE.
SYSDATETIMEOFFSET()
Returns the current date and time along with the hour and minute offset between the current time zone and UTC of the computer on which the Zen database engine is running. Daylight saving time (DST) is accounted for.
The default format returned is YYYY-MM-DD hh:mm:ss[.nnnnnnn] [<+ | ->hh:mm]. A plus sign indicates that the current time zone is ahead of the UTC. A minus sign indicates that the current time zone is behind the UTC.
SYSUTCDATETIME()
Returns the current local date and time as a time stamp value in the format 'yyyy-mm-dd hh:mm:ss.nnnnnnn'.
Uses the local clock time by default. Precision is septaseconds on Windows and microseconds on all other platforms, with the last digit always zero on all other platforms. If SET TIME ZONE has been called, then the value of SYSUTCDATETIME() is determined by calculating UTC time and date from the system clock and operating system locale setting.
Data Export Utility
The deu tool runs at a command prompt to export the results of a SQL SELECT statement to a delimited text file. It offers a range of code pages for the output.
Get and Step Delete Extended Operations
This release introduces the following extended delete operations:
•Get Next Delete Extended (85)
•Get Previous Delete Extended (86)
•Step Next Delete Extended (87)
•Step Previous Delete Extended (88)
These operations behave the same as existing Get and Step Extended operations, moving forward and backward through a data file and using filter terms to match records, which the database engine attempts to delete. For more information, see Btrieve API Guide.
Global Variable @@VERSION
SQL statements that use this variable return a value based on the Zen server engine, reporting engine, or workgroup engine to which the session is connected.
•For a Zen server, the value is the version of the local engine and the bitness, name, and version of the local operating system.
•For Zen Client Reporting Engine, it is the version of the local reporting engine and the bitness, name, and version of the local operating system.
•For Zen Client, it is the version of the engine on the remote Zen server to which the client is connected and the bitness, name, and version of the operating system where the server is running.
•For Zen Workgroup Engine, the value is the version of the local engine and the bitness, name, and version of the local operating system.
This new feature is documented under Global Variables in SQL Engine Reference.
Support for SQL Queries on Android and iOS
Zen Core SDK now includes support for using SQL on Android and iOS platforms.
Option for Setting Read-Only DSNs in ODBC Configurations
The following DSN configurations now offer an option to set a read-only DSN:
•Pervasive ODBC Unicode Interface (32-bit)
•Pervasive ODBC Interface (64-bit)
•Pervasive ODBC Unicode Interface (64-bit)
For information about the behavior of read-only DSNs, see the topic Read-Only under the Zen engine DSN setup instructions in ODBC Guide.
Butil Statistics Show Owner Name Protection and Encryption Level
When you use the -stat option with the butil utility at a command prompt, the information returned now includes whether owner name protection is used, including encryption level.
Butil Cache and Purge Support for List Files
The -cache and -purge options for butil now support an @listFile alternative to the sourceFile input.
Writable Open Mode for Btrieve Files
If the MicroKernel Engine cannot open a file for writing, then the writable mode returns an error. One common scenario is a file without file system write permission. The status code returned is 88, “The application encountered an incompatible mode error.”
Support for JDBC 4.1
This release adds JDBC 4.1 to its support for the Java Database Connectivity API.
Support in PDAC for RADStudio 10.3 Rio
This release adds RADStudio 10.3 Rio to its support for the PSQL Direct Access Components (PDAC) API, a set of Visual Component Library (VCL) components that allow direct access to Zen database engines from within the Embarcadero Delphi and C++ Builder Environments.