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

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.


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.

Method Editor

Write both 4D and SQL code in the same intuitive and user-friendly editor.

Completely re-written for v12, the 4D Method Editor lets you create methods and scripts that control behavior for 4D applications. It gives you total control over the behavior of each element in your application as well as server-side requests and database searches.


Concentrate on your code

Only relevant information is displayed in the window. You have the most space possible to view your code.


Developers can take advantage of better interaction between forms and subforms, with support for pointers and events to update subform contents.

With 4D v12, a main form can interact with objects in the subform and vice-versa.


Furthermore, components can be published as subforms to be used in host databases – Form Widgets are an example of these components.

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.


Picture Metadata

As images have become more prominent in computing, so has their accompanying metadata.

Popular image processing applications like Photoshop, Aperture, iPhoto, etc. and sites like Flickr and Picasa use metadata to help classify and organize images.

4D v12 supports image metadata standards in the form of EXIF, GPS, IPTC and TIFF, all of whose properties can be read and written by new SET and GET functions.


XML Integration

4D's support for XML has been updated and expanded in 4D v12.

Furthermore, data conversion mechanisms between 4D and XML have been strengthened, and 4D can both encode and decode XML.


New XML commands in 4D v12 include:

  • DOM Append XML child node
  • DOM Append XML element
  • DOM Get XML Document Ref
  • DOM Insert XML Element
  • DOM REMOVE XML ATTRIBUTE well as the parsing of date and time formats



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.

4D Plug-in SDK

The open source 4D Plug-in SDK is an essential tool that simplifies the task of developing 4D plug-ins. It writes the code 4D needs to correctly load a plug-in, allowing you to concentrate on your own code.

One of the strongest points in 4D is its ability to integrate plug-ins, written in C or C++ language. Plug-ins add to the richness of the 4D language and interface.

Add new commands
Although the 4D language already contains one thousand commands, developers can use C or C++ to come up with more ways to enhance and extend its functionality. These plug-ins allow 4D applications to meet business-specific needs or to achieve complex integration with other environments.

Session Management Controls

Intelligently manage sessions, time-out, login, logout, etc.