KDE 1549 Published by

For those unfamiliar with Rekall, Rekall is a database front end, in the style of Access, Knoda and Kexi.

The most notable changes since 2.4.2 are:

* ODBC and SQLite3 drivers
* Tests and test suite functionality

2.4.5 is mostly a bugfix release. The one significant addition is the addition (actually reworking, because it wasn't much good) of the IntelliSense(tm)-like support. See below.

Known to build on:

Suse 9.3, 10.0, 10.1
Fedora core 5, 6
Debian Sarge, Sid
Kubuntu 6.06
Xandros 3.1
Freespire
Mandriva One



Features
--------

* Builds and runs under KDE, QT3-only on Linux, Windows and Mac OS/X. Despite comments to the contrary on a certain other website, Rekall is first and foremost a KDE application; non-KDE builds are supported by a compatability library. Builds as a full and a run-time version; the run-time version has no design functionality.

* Database documents (forms, reports, etc.) can be stored in either the database or the filesystem. Database allows easy sharing, etc., file system can be used if (for example) you have read-only access to the database and just want to view it.

*
Extensive documentation. Much of the documentation can be accessed directly from design dialogs. Comes with its own document reader (like a stripped down Qt Assistant).

*
GPL'd drivers for MySQL, PostgreSQL, XBase (via a wrapper library), ODBC, SQLite3 and DBTCP. Supports database record locking where supported by the database.

* Table designer. Supports database specific types.

* Graphic form designer. Forms can arbitrarily nest forms, sub-forms, sub-sub-forms; forms can contain arbitrary independant sub-forms. Form designer supports both static layout (like Access) and dynamic layout (controls resize as in a typical KDE dialog).

* Wide selection of stock form controls. All stock controls are scripted so you can easily change their operation if needed.

* Database creation and connection wizards, plus wizard for creating the most common controls.

* Macros (as in Access macros). Provides basic scripting-type operations without the need to learn Python or Javascript.

* Skinning, like HTML stylesheets. Allows per-client customisation for colours and fonts. Can even work where multiple clients share the same forms in the the same database.

* Graphic report designer.

* Graphic query designer. Supports inner, left outer and right outer joins (on primary keys and arbitrary expressions), plus arbitrary where, order, group and having expressions. Preview of generated SQL.

* Fully scriptable in both Python and Javascript (using KDE's KJS engine). Integrated debugger for python (Javascript to follow). Script code can be embedded within the form or report, or stored in separate script modules.

* Scripting supports an event/slot mechanism similar to QT's signals and slots. Allows code to be located within the object to which it applies rather than being spread around the form. Makes copying and removing controls which have associated scripts much easier.

* IntelliSense(tm)-like scripting help. Manually invoked via Ctrl-H or see Options/Scripts and Macros to enable auto-display. Needs documenting.

* Data copiers. Copiers copy data from a source to a destination; sources and destinations can include tables, files (XML, CSV and fixed column), and queries. So you can import, export, copy table to table, even convert a CSV file direct to an XML file.

* User designed components. Allows you to design components that can be pasted or linked into forms and tables. If components are linked then changing the component design is reflected wherever it is used. The boss wants those 74 blue-on-grey date stamp fields changed to red-on-grey: 20 seconds work if you used a linked component!

* Database dumper and loader. Allows dumping and loading of databases (provided the database only uses stuff that Rekall knows about). Supports packaging of databases for automatic download and installation from a Web server. Database loader can change table and column names on the fly.

* Runtime display of executing queries, and events and slots as they fire. Raw SQL entry and execution.

* DCOP control to open forms and such; there is an equivalent "RKCOP" for the non-KDE builds. Also supported is the ability to inject script code into a running instance of Rekall, allowing some very sophistated automation.

* Tests and test suites. Loosely inspired by the xUnit unit testing packages. Tests can be associated with form objects, and executed individually or as part of a test suite which collects and displays results. Recording of form updates for subsequent replay and test. Test and recordings can be performed within (rolled back) transactions so database is not changed. Forms and tests can be executed against other databases (to provide know test data sets).

* Database objects (forms, etc) when stored in the database can be cached locally for improved performance. As a special case, just graphics can be cached. Useful where you have shared development of graphic-heavy forms.