Data and the Web

Announcing Kirix Strata 4.3

Image - Strata IconWe’re pleased to announce that we just released a new upgrade to Kirix Strata, version 4.3! Kudos to our developers for adding a lot of nice features and bug fixes.  The full list of notes to this release is below the jump, but here are a few of the bigger changes:

External Database Connectivity

We’ve really improved the way that Strata works with external databases by optimizing our pass-through queries for databases like Oracle, SQL Server and MySQL.  In addition, queries in the query builder that reference external database tables pass the query through to the external database, significantly increasing the speed of queries on external databases.  Furthermore, you can now edit individual cells in Strata and have them update in your external database table.  This is very welcome news to folks that want to use Strata as a front-end to their external database tables.

UPDATE (04/30/2009):  Just a quick note of clarification, on the “read” side, you can work with external databases for things like sorting, filtering, marks, calculated fields, grouping and copying.  On the “write” side, we currently only have cell editing available, but will work on adding other features in the future such as append (i.e., insert record), delete, update, and some modify structure operations.  If you need these additional “write” features, please send us a note to let us know how you would plan on using them to help us prioritize our development efforts. Thanks dedicated servers!

Improved SQL Support

We added a console panel to allow direct querying of internal and external databases with SQL commands, as well as to provide feedback for database operations and scripts.  You can learn more here.

EBCDIC Conversion

Strata now handles EBCDIC.  We haven’t added copybook support just yet, but you can either manually set your breaks using the text-import or create scripts to convert the EBCDIC file to ASCII format.  You can learn more here.

Fixed Length and Delimited Table Export

We’ve also added Fixed-length export (this also works when using File > Save As External).  In addition, we’ve expanded the text-delimited export so that you can specify your own delimiters, such as pipe-delimited and semi-colon delimited. You can learn more about the new text-delimited functionality here.

Handling Tablenames & Fieldnames with Spaces

One of our most common support questions relates to spaces in a fieldname (like “my field” instead of “my_field”).  We’ve now solved this issue by allowing spaces to be used by enclosing the name in brackets.  So, for example, these are now all valid expressions:

[Field  1] * [Field  2]
Field1 * [Field  2]
[Table 1].[Field 1]*[Table 2].Field2

You can learn more here.

Much Much More…

There are plenty of other upgrades like project handling, new keyboard shortcuts, auto-fill group and sort dialogs, new script classes, etc.  You can check out all the changes below the jump.

Please download the latest Strata (or just click “Check for Updates” in the Help menu), give it a whirl and let us know what you think!



  • Added a console panel to allow direct querying of internal and external databases with SQL commands, as well as to provide feedback for database operations and scripts.
  • Reorganized menus to provide streamlined access to some features:

1) Moved project manager from Tools to File menu
2) Added right-click option on project panel menu to allow projects to be easily changed
3) Added right-click option on project panel to create new files directly in the project
4) Added remove-filter menu items in table column right-click menu
5) Added right-click option in project panel for printing reports
6) Changed insert-column item in table right-click menu so it opens the edit column view panel instead of the insert column panel
7) Changed quick expressions in table right-click menu so they are more specific to particular external database syntaxes; i.e., added appropriate right-click quick-expressions for external data types

  • Added additional hotkeys:

<CTRL-/> sets the focus to the quick-find text-entry box
<CTRL-I> and <CTRL-SHIFT-I> set the focus to the active document; useful for getting back from the console to the active document
<CTRL-;> and <CTRL:> set the focus to the console
<CTRL-SHIFT-K> shows the console panel and sets the focus to this panel
<CTRL-K> toggles the focus between the console panel and the active document
<CTRL-Shift-B> shows the project panel and sets the focus to this panel
<CTRL-B> toggles the focus between the project panel and the active document
<CTRL-BREAK> stops a reload operation or cancels a job
<CTRL-SPACEBAR> selects a column in a table
<Shift-SPACEBAR> selects a row in a table
<CTRL-ENTER> performs command for an open dialog (e.g., Filter, Update)

  • Added the ability to edit cell values in an external database table using the table document interface, provided a primary key exists on this table.
  • Created simpler sort records, group records, and update records panel configurations. The sort records and group records panels are now pre-populated with any selected table columns; the update records panel now uses the cursor field as default field to replace.
  • Added better default fieldname handling in the group panel; group fields are now consolidated with detail fields when inserting detail records; the “count” aggregate function output is now named “Row_count” instead of “count.”
  • When a new filter sort order or filter is created on a table, column selections and cursor column position are now preserved, making it much easier to perform related operations on the same set of columns multiple times in a row.
  • Files in external file system mounts can now be opened explicitly as text; this is important in the case of files that might open as tables by default, but might actually be text, such as files ending in *.txt.
  • Expression validation is disabled in expression builder for external data tables so native database expressions can be entered in the expression builder and run against an external database.
  • If a table is opened from a hyperlink but the table is already opened, the active document is now set to the already opened table; if a report, query or script is opened from the project panel, but the report, query or script is already opened, the active document is now set to the already opened report, query or script.
  • Reports, queries, and scripts that have been changed since they were last saved are now denoted with an “*” in their caption.
  • Added print support for browser pages.
  • Added preference setting to load the last project that was used.
  • Queries in the query builder that reference external database tables pass the query through to the external database if all the referenced tables are part of the same database, significantly increasing the speed of queries on external databases.  If the query references tables that are part of different databases or external file systems, the query logic is processed by the native data engine, joining the tables across the different databases or file systems (i.e., cross-database joins).


  • Added additional export types, including an export for the fixed-length text format and an export for user-specified text-delimited outputs.
  • Added ability to import EBCDIC files.
  • Added ability to import directly into a Kirix package file from an externally connected database; likewise, added ability to export directly to an externally connected database directly from a Kirix package file.


  • Added additional support for additional SQL syntax, including:

5) Concatenation operator ||
6) Expression literals for dates and times; e.g. {d ‘2008-12-31′} or {ts ‘2008-12-31 13:41:11′}

  • Added additional functions and function capabilities, including:

1) CHR() function for converting numbers to their respective ASCII value
2) ISNULL() function for identifying null values

  • Added compact/clean project for cleaning up unused system resources.
  • Added support for tablename and fieldname qualifiers for both internal and external databases, allowing database operations on both internal and external tables that contain spaces in their names as well as on fieldnames that contain spaces.
  • Added more comprehensive error reporting for failed SQL statements for both internal and external databases.


  • Added strict mode to scripting so scripts can determine whether or not to explicitly check for semi-colons at the end of statements and whether or not to require variables to be declared with “var”.
  • Added JSON class with JSON.parse() to convert JSON strings into objects and JSON.stringify() to convert objects into JSON strings.
  • Added Process class for creating and managing system processes.
  • Added Console class for outputting script information to the console.
  • Added HostGlobal class for safely passing values across threads.
  • Added exceptions to database-related classes so invalid SQL statements and other database errors throw an exception that can be handled with try…catch.
  • Added additional functions and capabilities to various classes:

1) Added cloneNode() function to XmlNode script binding to copy nodes
2) Added ability to specify a node when appending a child to another node
3) Added String.sprintf() to more easily format output strings
4) Added String.trim() to more easily remove leading/trailing spaces from strings
5) Added File.copy() to copy files from one location to another
6) Added HttpRequest.setTimeout() to set the timeout time of a request

Fixes and Other Enhancements

  • Fixed cursor drawing problem when switching between tables.
  • Fixed problem with filter operations on SQL Server tables not displaying result set.
  • Fixed problem where time portion of datetime value wasn’t exporting properly to MySQL.
  • Fixed problem where boolean values weren’t properly exporting to MySQL.
  • Fixed problem where scrolling with table cursor wasn’t taking into account group breaks.
  • Status bar job failure indicator is now cleared out when new jobs are run.
  • Modify structure now converts character and number values that represent a date to appropriate datetime values when converting from character and numeric types to date or datetime types.
  • Modify structure now uses more appropriate default character and numeric widths when converting from double, integer, date, and datetime types.
  • When deleting an individual record in a table, cursor now advances to appropriate row rather than moving back to the top of the table.
  • Column list now shows non-inserted columns with a lighter icon.
  • Space bar now toggles boolean fields.
  • Imports and exports now remember last folder used.
  • File properties now reports more information about database objects.

Comments are closed.