ODQL vs DQL and the Ffenics internal structure.

Discussions on the future of databases, computing , the meaning of life ........

Moderators: Phil Winkler, Graham Smith, Pete Tabord

ODQL vs DQL and the Ffenics internal structure.

Postby Pete Tabord » Sat Jan 14, 2012 12:32 pm

DFD was character based like DOS and contained a query language, DQL.

Ffenics(DFW/Express) is event driven and object oriented. Like Windows. So, it was originally thought necessary when designing the Windows equivalent of DataEase to replace DQL with a new language, ODQL.

For various reasons this was not fully implemented, it was originally launched without a query language (but with very powerful graphical query tools), and the decision made that the next Windows product would have DQL updated to fit instead.

DQL as it then existed was a set oriented query language. It defined a set of data and then described the operations to be carried out on that set of data. Its output in DFD was an annotated character string, but in a Windows environment graphics output must (usually) be generated instead if normal Windows screen and print handling is to be used.

A set can be regarded as an object, and that was the start point of our project to add DQL into Express.

ODQL did not need to define a set of data, that was replaced by the data model of the form or report (the Document Object) that the scripts would have been attached to. The object scripting facility in Ffenics is a cut down version of ODQL. As those of you have used it will know, it must belong to an object and be triggered by some sort of event.

DQL has been implemented by using it to create the data model for a Procedure document. The actual processing must hang off some kind of event because that is the way things work in an object oriented environemnt, and the various child objects that would experience those events are therefore created when the DQL is compiled and the layout generated. This is the reason the layout is compulsory and must match the DQL query, regardless of whether the actual output is required. In adddition, the objects all include print routines and in effect know how to print or display themselves when they are 'executed'.

In fact, the processing is added in much the same way that it would have been if ODQL had been implemented and you the user had added the processing to the individual visual object's events. (Although it is the compiled processing which is generated, there is no 'text' which you could examine and edit).

This data load is the way the relational structure of a database is meshed with the object structure of the Windows environment. It is achieved through a structure called the Multiview, whose multi-dimensional tree matches the data model of the document, with additionally all lookups, virtual fields etc. resolved. (If you attempt to draw the structure, it looks somewhat like a pyramid, and since data is reorganised by being passed through it the name PRISM for the Ffenics database engine makes some sense!)

There is very little difference between the various document types in FF - a few flags make the little adjustments needed between the various types. They are all Document Objects. The parent object in a Ffenics tree is the Application Object, whcih has numerous Document Objects (and other objects as well, for example a Catalog Object). The Documents in turn have numerous Visual Objects, a Data Model/Multiview object, and so on.

To return to DQL, in Ffenics it is actually a macro language which creates 'ODQL'. As such, I happen to think it is both massively useful and much quicker than having lots of little (or even bigger) scripts all over the place.

In a way we now have the best of both worlds - we have a simple general purpose query language in DQL, and the ability to make customisations to handle specific more complex requirements, particularly in enhancing the user interface and work flow, with object scripting.
Last edited by Pete Tabord on Thu Jan 19, 2012 12:57 pm, edited 7 times in total.
Reason: Cleaned up.
Peter J. Tabord
Head of Development
Database Software Ltd.
Pete Tabord
Posts: 1881
Joined: Fri Sep 07, 2007 12:48 pm
Location: Caernarfon, Gwynedd, UK
Has thanked: 0 time
Been thanked: 3 times

Return to Philosophical Discussions

Who is online

Users browsing this forum: No registered users and 1 guest