warning: file_get_contents( [function.file-get-contents]: failed to open stream: HTTP request failed! in /var/www/ : eval()'d code on line 4.

SQL Dump and Insert

4D v12 introduces new SQL-related commands for exporting and importing data.

The SQL EXPORT DATABASE command exports all the records and tables of a database in SQL format.


The SQL EXPORT SELECTION command exports the records of the current selection of a 4D table in SQL format.


Previously, 4D export formats were binary. SQL dump is in highly readable text format.


And although text data is not standard/normalized between various platforms, 4D can accept data from multiple SQL engines using the SQL EXECUTE SCRIPT command, which supports multiple inserts, joins and more.

Rich Text

New for 4D v12, text within a Text Area, List Box, variable, alpha field, etc., can have multiple styles applied.


Text styles include font, size, style (i.e. bold, italics), text color and (under Windows) background color.


Style properties can be stored with the text itself, as HTML-style <SPAN> tags, and support both Setters and Getters.



4D has always given users excellent control of printing of data from output forms and reports.

4D v12 brings even greater control and variety of print output. List boxes can be printed. The new Print object command lets you print any object at any precise position on the page. And new to Windows, 4D can now print directly to PDF using the PDFCreator driver. 


Print PDF


Use Multiple Databases

4D v12 can be used to create, modify and use "external databases" via the SQL language.

An external database is an auxiliary 4D database linked with the main 4D database.


Multiple external databases can be used with the same 4D database, and a 4D client can access external databases on the same server.  This can all be accomplished without having to close or restart the application, in a matter totally transparent to the user.



4D v12 improves upon application localization capabilities.

XLIFF files, used to store localization information since 4D v11 SQL, can now be called upon to change an entire user interface on the fly. A single 4D command can instantly change the interface language.

List Boxes

The list box has long been one of the most useful GUI elements for easily viewing and selecting linear and tabular data.


Getters and Setters

Programming in 4D has always been logical and easy, and has become even more so in 4D v12.

For harmony and standardization throughout the language, every object now has a symmetric GET and SET function to read and write property commands.


Furthermore, the OBJECT DUPLICATE command can create copies of objects, including all associated properties and object methods.


Note that some of the commands have been renamed since 4D v11 SQL. However, they will be automatically converted when opening your solution under 4D v12.


See an example of Getters & Setters in action in our Example Applications section.

Form Widgets

An entire library of predefined compound objects is included for use in your interfaces.

These include search bars, time pickers, date pickers, barber poles and more.


Dynamic Variables

As of 4D v12, you can now leave it to 4D to create variables associated with your form objects.

If you leave a variable blank, 4D will create the variable and calculate a unique name for it. These dynamic variables can be accessed via pointers, allow the development of subform components, and can economize memory usage as they are only used during the instances when the containing form is opened.

Integrated Database

A powerful relational database is fully integrated into 4D.

4D provides a true enterprise-class database, with the capacity to process massive databases while keeping the same responsiveness and performance you've come to expect in 4D. We've shattered all previous database size limits to give both new and existing databases much more breathing room.

It is up to the challenge of even the most demanding projects.

4D's large capacity lets you serve ever-increasing data storage requirements without a problem, and provides the speed for guaranteed performance no matter how large your database.