SQL-4GL Applications Development Tool


MultiBase is a family of advanced products conceived as a global tool, capable to satisfy thoroughly the needs of the user. MultiBase is an innovative product in constant evolution.

In the successive versions of MultiBase, the product has been including new capalities to support the innovations added by its underlying technologies (OS, DBMS, GUI, etc). To the incorporation of these improvements has directly contributed the Users Information Exchange Program. This Program allows MultiBase users to participate actively in the evolution of the product.

The MultiWay technologyTop

MultiBase has been pioneer offering solutions fully interoperable with other products through its Multiway technology. Its unique features enable to utilize without modifications any application developed with the 4th Generation Language of MultiBase, on top of almost any current SQL server (Oracle, Informix).

This feature, plus the client-server architecture enables the design of solutions with great flexibility, optimizing all the hardware resources available.

The full compatibility of applications developed with MultiBase under UNIX and Windows, provides a unique framework, overcoming any current obstacle in the exploitation of Databases.

The Easy-Tools familyTop

Within the included in MultiBase there are a number of very user friendly tools highly productive named Easy-Tools.

Two of them stand out, the Easy-SQL, included since the very first versions, and the Easy-Report, a high performance tool which allows complex queries to be performed by the end user against any Database, locally or in Client-Server mode.

Trans: The application development environmentTop

TRANS is a highly productive unique set of integrated "Lower-Case" tools that offers the programmer all the elements necessary to design the most advanced software.


MultiBase: Development Environment

Database maintenance

TRANS includes all the necessary functionality for the definition and maintenance of databases. It allows the SQL Data Definition Language (DDL) to be easily and transparently used by the programmer through data entry programs.

All the important aspects of the maintenance of the database structure that applications will later use are included: database creation and maintenance, Tables, Columns, Indexes, Views, etc.

Programming catalogue

TRANS automatically maintains a programming catalogue that comprises all the information about the objects that make up the application that the programmer is developing (programs, modules, tables, indexes, columns, etc). It contains data such as:


During the development of an application on a database, TRANS allows all its modules and programs to be compiled automatically, a prototype to be generated from a schema and information about all the elements that the application comprises to be obtained.

In the same way, TRANS permits the directories where the different elements will be saved to be defined.

In the case of prototype generation, TRANS will design a data entry program, a report program and a query program for each of the tables contained in the database. Finally, a "pull-down" menu will comprise all the generated programs.


The TRANS modules responsible for giving programming support allow modules and programs to be defined, programs to be classified, modules to be edited, compiled, executed, debugged and corrected, program linking, program and module classifications changes, program or module renaming, etc. In short, all those tasks related to the development of application programs are included.

Likewise, TRANS takes care of the maintenance, editing and compilation of the application help files.

Interactive use of the Structured Query Language (SQL)

For those occasions in which the programmer needs to use the SQL interactively, TRANS provides a menu to edit, test, save, catalogue, etc. SQL statements.

In this way, everyday needs such as the testing of SQL statements that will be included in programs at a later stage, the cancellation of operations undertaken by a program on a database or the measurement or different statements' run times obtain a simple and efficient solution.

Code generation

In order to rapidly create the first versions of the different application programs, TRANS offers a series of options to generate the code. The programs generated will automatically form part of TRANS’ programming catalogue and can therefore be edited, modified, etc. at a later stage as though they were created by the programmer himself.

The code generator is able to create the following different program types:

In the case of menus, the code generator designs a menu program that comprises all the programs throughout the application developed until that moment.

Documentation generation

One of the most painstaking and time-consuming tasks is the creation of the developed application's documentation. In this respect, a set of options is provided for any application developed with TRANS that permits both the user and programmer documentation to be automatically generated. In this way, the application's documentation is not only considered as something obvious, but at the same time is maintained up to date with the latest application status.

The documentation generators analyze and sort all the information contained in the programming catalogues, database structure, help files and the application programs. They use this information to generate a manual structured in chapters, sections and subsections.

There are 2 documentation levels:

1. User Documentation.
TRANS allows a program or application's User Manual to be generated automatically, i.e. it permits a program to be documented separately or the entire application's documentation to be generated from a program. In this case, the entry program and all nested programs to any level are scanned. The documentation generated can be printed and edited in order to incorporate any modification the programmer deems suitable.

2. Programmer Documentation.
In order to generate the programmer's documentation, TRANS uses all the information contained in the programming and database system catalogues to elaborate an ordered manual that permits the application and its structure to be rapidly understood and provides information on all relevant aspects.

This manual will contain information such as:

CTL: The complete 4th generation languageTop

Implementation features

The CTL language possesses two very distinctive commands; a compiler (ctlcomp) which compiles source code to pseudo-code, and a command (ctl) that executes this pseudo-code thus guaranteeing that the source code is totally portable from one platform to another without the need for any modification whatsoever.

On the other hand, CTL possesses its own process control, so that in the case of program nesting, no call to the operating system is made, but it is the very language that takes charge of whatever CTL process the user has started.

This feature reduces considerably the load on the operating system: for each user executing an application there will be only one process in memory.

In comparison with other languages, the applications developed with CTL do not require any operating system context switching, which, in the case of UNIX, is a very costly task in terms of execution times.

All this provides surprising application execution speeds. Also, the load times of the different application programs are imperceptible; for the operator they are instantaneous.

One of the fundamental features of CTL is its advanced CLIENT structure. For example, the CTL can not only act as a CLIENT to MultiBase's Database Manager, but also to any other SERVER the programmer needs to solve his specific application problems.

Modular architecture

Because of the nature of its structure, any CTL program can be broken down into as many modules as the programmer wishes. Each one will be loaded in memory at run time (that is, at the moment that any of the module's functions are called), and will remain loaded until CTL disappears from memory.

In this way, the libraries used by the different programs will only be loaded once, at the moment of the first function call, and will be shared by all the programs that use them.

Language structure

CTL is today's most advanced language. Its features make it a uniquely productive and secure tool:

1. Non Procedural Language. Complete 3GL Set.
One of the principal features of a fourth generation language should be its high non procedural content. However, this feature alone does not guarantee that it can be used to design an entire application.

Any real application possesses elements that can only be designed using procedural methods. CTL resolves this problem by including not only a rich set of non-procedural structures and instructions but also a complete set of procedural instructions and functions equivalent to the most advanced third generation languages.

2. Structured and Recursive.
Apart from recursive, CTL also possesses all the features necessary to program in a structured manner.

These two features used together allow the user to employ the most advanced programming techniques, resulting in easy to read and highly effective programs.

3. Object Programming.
The CTL language has a series of defined objects (variables, arrays, parameters, cursors, frames and forms, amongst others) with the associated handling instructions. This technique provides the programmer with a set of tools to develop powerful programs with an extremely reduced number of lines of code.

4. Embedded SQL.
CTL incorporates a "super-set" of embedded SQL that includes all the SQL syntax. Thus, all functions executed on the database from CTL will always be done using SQL.

The programs designed with CTL are 100% portable between UNIX, MS-DOS and Windows, thus guaranteeing its implementation on any hardware platform.

In other 4GL's, this embedding generates impedance mismatch problems caused by the syntax differences, redundant instructions, data type inconsistencies, etc.

CTL is designed to match perfectly with SQL which completely eliminates these problems. The data types in CTL and SQL are identical, and specific structures and objects exist for their communication. The programmer can not appreciate any difference between the two languages: it is as if they were one.

5. The interface with the Operating System.
CTL is capable of efficiently communicating with the operating system via a set of specific instructions and functions, and also possesses the tools necessary to communicate with other processes, to read and write operating system files (be they ASCII or binary) and to read and write to or from any other device.

With CTL, the programmer can design programs that were previously impossible for fourth generation languages.

Language debugger

CTL possesses a powerful program debugging tool that allows any error to be precisely located in minimal time. It includes all the necessary options yet its use is extremely simple.

Language objects

Apart from the typical objects used by other languages (parameters, variables and arrays), CTL has a series of advanced objects that provide the ability to program rapidly and efficiently.

Just as there are operations and associated functions (addition, multiplication, character extraction etc.) implicitly defined in the language for numeric or alphanumeric variables, predefined operations and instructions used with CTL's advanced objects also exist.

ADD, REMOVE, QUERY, INPUT, DISPLAY, etc. are the functions that allow these types of objects to be handled, thus giving the tool enormous power.

These advanced objects are:

These are specialized objects for data entry. Via FORM type objects, data entry may be directly performed on one or several database tables. With FRAME type objects, the programmer can utilize data in a very flexible manner.

These are communication channels between an application developed with CTL and the operating system. This communication can be either input or output.

Cursors are objects that allow results from the database SERVER (CTSQL) to be handled from CTL.

The objects that allow the definition of three menu types; LOTUS, PULLDOWN and POP-UP are MENUS.

CTL functions

CTL enjoys more than 70 predefined functions and magnificent execution speed. These functions are classified in the following groups:

CTL instructions

CTL has a set of more than 100 instructions which are classified in the following groups:

The user interface

The objects handled by the CTL, together with the instruction set it contains, provide the programmer with a highly advanced user interface.

Efficient and, for the user, highly spectacular applications are obtained in exchange for a minimum programming cost.

Operating system independence

The programs designed with CTL are 100% portable between UNIX and Windows.

CTL is the only 4th Generation Language that guarantees the generation of unique source code that may be ported to any hardware platform.