- United States
- Australia
- Brasil
- Deutschland
- España
- France
- Latinoamérica
- Portugal
- Québec
- Sverige
- United Kingdom
- 日本
Search
FEATURES
4D v11 SQL is 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.
4D v11 SQL is up to the challenge of even the most demanding projects.
Bigger Size
Our expanded capacity lets you serve ever-increasing data storage requirements without a problem.
Better Performance
We've rewritten everything for guaranteed performance no matter how large your database.
64-bit data file access.
• Optimized, 64-bit ready memory management
• Read-ahead buffers generalized for data file access
• Optimized management of large image and BLOB fields
• Native ultra-fast Unicode character access, through removal of internal ASCII conversions.
4D v11 SQL also provides new, specialized index types to optimize data requests:
• Composite Index: Simultaneous indexing of values from two or more fields (for example, First Name and Last Name).
• Keyword Index: Index every word in a text field for near-instantaneous full-text searching.
• Cluster Index: Faster than B-Tree indexing for fields with a high percentage of redundant values.
Transaction Management
4D v11 SQL includes a multi-level transaction management system loaded with automatic sub-transactions.
Universal Binary Architecture
4D v11 SQL is 100% Universal Binary compliant. You can now take full advantage of Apple's latest Intel processors while running 4D.
Automatic Administration
4D v11 SQL databases in production are designed to need minimal regular maintenance, but when you do need to do database maintenance, there is a set of integrated tools to help you in the new Security and Maintenance Center, as well as 4D language commands.
Take complete control
A complete and ergonomic Admin Window gives you:
• Graphical display of all 4D Server activity metrics
• Separate panels for detailed views of users and processes
• New colors and icons to visually distinguish grouped elements
• Query/filter displayed information
• Direct access to primary maintenance procedures (verification, backup, compacting, etc.)
• Separated access to control and activation of servers: application, SQL, and HTTP
Take advantage of the SQL engine
The native SQL engine in 4D allows developers to implement industry-standard SQL within their 4D applications. Learning the 4D language is no longer a requirement to building an application with 4D.
Manage all of your databases
4D natively supports all SQL 92 standards. This allows you to work with both database records (DDL) as well as the structure (DML).
One standard, many options
Because every developer has different needs, we've created a number of ways to integrate SQL into 4D. The two most common methods are the IMMEDIATE EXECUTE command for basic queries, or the START SQL / END SQL command for more advanced code.
Complete 4D integration
Native integration of SQL in 4D is so complete that you can use the two languages within a single method, and you can also use the results of SQL queries in 4D objects (such as variables, fields, or controls like a ListBox).
Here’s a simple example: Viewing the result of a request in an array is as easy as 1-2-3.
1. Place a ListBox in a form
2. Add your query in the execution script of a button
3. Run it and see the result
4D automatically creates the necessary columns and headers for you before filling the ListBox with data.
Communicate with remote sources
Integrating SQL support also means that 4D can easily communicate with external data sources. This includes other 4D databases as well as Oracle, MySQL, or other external databases. A single line of code allows you to redirect your request to external data sources.
4D provides an integrated Maintenance and Security Center (MSC) that makes running and managing your databases much simpler and easier.
Database administrators (and, if you wish, users) now have access to a fully functional graphic toolset for 4D database maintenance, optimization, and backups.
Total information
The Maintenance and Security Center lets you view key information about your applications (type and version), files (structure and data) and your user license. It also provides basic information on each table of your database (name, number of records, number of fields, indexes) as well as the sizes of the files and the space available on the disk.
Analyze activity
This feature allows you to view operations performed on the database (creation, editing, and deletion of records) and revert to previous versions of the database if necessary; for example, to fix a user error.
Backup monitoring
You can set up and monitor automated backups, as well as restore data from a previous backup in case of emergency.
Check integrity anytime
You can use the Maintenance and Security Center to verify the physical and logical integrity of your database and all its indexes.
You can also verify the content of a selected table or just an index. This is particularly useful when working with tables that contain tens of millions of records!
Once the check is finished, the Maintenance and Security Center displays a full activity report in HTML.
Compact data easily and efficiently
Compacting data is a highly useful tool to increase performance and free up disk space after a data file has been significantly modified, or after deleting a large number of records, fields, or even entire tables.
Compacting data is easy, too. Simply click the “Compact records and index” button to get started. 4D takes over and stops the database, makes a backup, and compacts the data file. It also generates a report on all actions taken.
Stress-free database repair
Should a database become damaged for any reason, the built-in repair tool will fix both your data and your application. For extra security, your structure and a copy of all damaged data is saved before the repair attempt starts.
A report detailing any problems encountered is generated as the repair progresses.
Web Services allow an application to call another application using standard protocols such as SOAP and WSDL, independent of the platform or language used.
Since 4D Web Services are written to support Internet standards, they allow 4D developers to build applications that communicate across a local network as well as over the Web.
4D can act as a Web services client, a Web services server, or both.
Web Services Client
4D v11 SQL includes a wizard that allows you to automate the process for generating Web Services calls in a 4D method. This wizard translates the WSDL files provided by the remote service into 4D code that you can use immediately.
Single-click Web Services Server
Publishing Web Services has never been so easy, thanks to the 4D integrated Web Services server.
In a single click, existing project methods are transformed into public SOAP methods. If specified, 4D v11 SQL automatically provides service documentation in a WSDL (Web Service Description Language) file.
For the maximum level of openness, 4D v11 SQL also handles RPC* and DOC* publications:
• SOAP: Simple Object Access Protocol (SOAP) is a RPC oriented protocol built on XML. It allows sending messages between remote objects, which means that it authorizes an object to invoke object methods physically located on another server. The transfer is done most often using the HTTP protocol, but can also be done using another protocol, such as SMTP.
• WSDL: Web Services Description Language. This is an attempt at standardization that publishes the description of elements needed to access a network (Web) service. It uses the XML language and was created in 2001 at the W3C for standardization purposes.
• RPC: Remote Procedure Call is a protocol that allows calling procedures on a remote computer using an application server. This protocol is used in client-server setups and allows onoing messages between these entities.
• DOC: Document-oriented Web services
“Interpreted” is similar to “compiled” in that 4D software is embedded in your application, so your users won’t need a copy of 4D on their computer to run the application. But unlike compiled applications, the source code is not protected from view. If you want to distribute compiled applications, you will need to upgrade to 4D Developer Professional.
Included in 4D Interpreted Desktop
• SQL database engine
• Interpreted application support
• Use of components
Why choose 4D Interpreted Desktop?
• 4D Interpreted Desktop is provided at no additional charge with 4D Developer Standard
• You can deploy an unlimited number of interpreted single-user, stand-alone applications
• Easy cross-platform Mac and Windows application deployment (with licenses for both platforms)
Licensing Notes
4D Interpreted Desktop is available per operating system. If you want to develop and deploy cross-platform applications, you will need two licenses for 4D Developer Standard (one for each operating system). You can then deploy your application on an unlimited number of Mac and Windows machines.
4D applications covered by this license must be deployed on independent, single-station computers. If you want to deploy 4D software on a server, or on a client machine that communicates with a remote server, you will need one of the following 4D deployment licenses: 4D SQL Desktop, 4D Web Application Server, 4D Server or 4D OEM Desktop. Please refer to your license contract; for any questions, please contact your 4D sales representative.
4D Unlimited Desktop allows you to deploy compiled versions of your 4D applications to users. Your users will not need a copy of 4D on their computer to run these applications. Deployment licenses for office productivity applications 4D Write and 4D View are also included in 4D Unlimited Desktop.
Included in 4D Unlimited Desktop
• SQL database engine
• Supports both compiled and interpreted applications
• Office productivity modules (4D Write and 4D View)
• Use of components
Why choose 4D Unlimited Desktop?
• 4D Unlimited Desktop is provided at no additional charge with 4D Developer Professional and 4D Team Developer Professional
• You can deploy an unlimited number of either compiled or interpreted single-user, stand-alone applications
• Easy cross-platform Mac and Windows application deployment (with licenses for both platforms)
Licensing Notes
4D Unlimited Desktop is available per operating system. If you want to develop and deploy cross-platform applications, you will need two licenses for 4D Developer Professional (one each for Windows and Mac). You can then deploy your application on an unlimited number of Mac and Windows machines.
The 4D applications covered by this license must be deployed on independent, single-station computers. If you want to deploy 4D software on a server, or on a client machine that communicates with a remote server, you will need one of the following 4D deployment licenses: 4D SQL Desktop, 4D Web Application Server, 4D Server or 4D OEM Desktop. Please refer to your license contract; for any questions, please contact your 4D sales representative.
Instantly view all indexes for maximum productivity
This explorer lets you see all your database indexes in one display. This is a useful maintenance tool that will help you increase your database performances and get the best from 4D.

Arrange your indexes
Using the "order by" feature, you can sort indexes by type, field, or name. This helps you spot inconsistencies, or fields with multiple indexes, much more easily.
Intuitive marking
Different index types are assigned different icons to help you spot the difference at a glance.

Configure and optimize your indexes
• You can let 4D choose the best index architecture for your data (automatic type), or select their architecture yourself (cluster, b-tree types) to optimize performance
• A new index option, the keyword index, has been added to help you optimize keyword searches in text fields
• You can optimize for most frequent searches and combined sorts using a composite index (multiple fields index)
The add and delete functions in this explorer make it a true administration tool that allows you to optimize the performance of your database and take full advantage of 4D’s capabilities.
Build and distribute
The application builder is the most important tool for developers who distribute customized business applications.
Configure and customize
After configuring and saving the different settings that customize the application (application type, customer logo, destination of the generated application, etc.), you will be able to apply all settings to your application at any time. Plus, our contextual help system keeps you informed about the results of your choices.
Set parameters and keep control
4D's multi-project architecture allows you to generate several applications in a single action using just a click of the mouse. This lets you provide a unique version of a single development to distinct customers.
Because your customers don’t all have the same needs, you can parametrize the options you want to include (or not) when distributing. For example, you can turn on word processing for some customers, and leave it out for others.
All settings of the application builder are stored in XML files, which means that you have full, replicable control over the entire process.
Ready-to-use components
As of 4D v11 SQL, the new components architecture makes component distribution easy. The application builder makes sure that all elements necessary for each component are gathered into one folder and included in a distribution automatically.
Automatic application updates
After updates have been made, our automated distribution process lets you push out changes across the client/server environment to each desktop without any human intervention.
The benefits are felt immediately: you spend less time updating clients and more time getting work done.
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. Separators allow you to display and compare two (or more) sections of code inside one method.
Even more tools
The toolbar provides information on the syntax of each piece of your code while creating methods.
The launch button: Immediately test and (if necessary) debug your code from inside the editor.
A dedicated search area allows you to perform a search within a specific method.
The multi-clipboard lets you save up to 10 different snippets of code that you use frequently for easy recall.
Display lists let you directly access tables, fields, or form names and use them in your code using drag-and-drop.
Use macros or create your own
Use pre-defined macros or create your own to automate code entry. For example, you can insert pre-formatted comments at the start of your method, or even add variable declaration structures.
Automation and formatting
4D language keywords can be automatically highlighted for better visibility within your code. You can also set highlighting commands for variables or other comments.
Using auto-complete for language and constants lets you write your code quickly while minimizing the chance of errors creeping in.
Native SQL
The Method Editor now handles SQL code too! By using the new START SQL and END SQL tags, you can add SQL code directly to a 4D method for even tighter code integration and faster processing. The 4D code and SQL code interact natively, without needing a gateway. It's the best of both worlds in one editor.
Continuous syntax support
The Quick Reports bar tells you on the fly about any errors in the 4D command you've entered.
Keep control
You have complete control over who is authorized to do what in each method to insure maximum application security, both for developers and for end-users. Not only can you set read/write access, but you can also limit access to Web services, components, Web and SQL requests.
What’s a component?
A component is a library of code and screens that you can drag-and-drop into any of your applications.
Using this mechanism, you can create basic code building blocks, test them, then share them in collaborative development efforts or distributed to your customers.
Modular development
If you've wanted to do modular development in 4D, components let you do just that. There's a lot of ways that components can help speed development and deployment. Here are a few examples:
• One developer builds a library of tools, like a file management command set. Every other developer on the team can then use this library as easily as they use the 4D language commands.
• You built a vacation tracking application and you want to distribute it to your customers. Distribute it as a component and their application will automatically be enriched with the tables, fields, dialog boxes, and scripts that allow using this functionality.
New as of 4D v11 SQL
Immediately operational
A component is a completely independent 4D database. No need for external tools to create one! You just have to select the methods that will be published and check the sharing option. That’s it!

Using a component is just as easy: drop the component in a dedicated folder and take immediate advantage of the new features.
As easy as hello!
Updating a component is easy – delete the old one and drop a new one in its place.
Save time, stay Zen
You don't need to update the entire application when you update a component anymore. Send the updated component to your customer, and that’s it!
More security and performance
Components can be compiled to protect the underlying code. Since compiled code runs faster, this security step has added application performance benefits: faster launch time.
Ready to use
Generate your compiled component and distribute the module directly to your customers!
Truly Global Tools
Up through 4D 2004 you had to use 4D Insider to perform an application-wide search and replace. That’s changed as of 4D v11 SQL. Our new search and replace tools are truly global in scope.
More Searching Power
We’ve significantly expanded the ways you can run your searches, including:
• Multi-criteria search: you can set up to 3 criteria (object type, object name, modification date)
• You can choose from 4 match types: “contains”, “is exactly”, “starts with” or “ends with”
• With a new object type, you can search on a project method name
• You can use “@” as a wildcard
• You can select a folder to limit the search area

More Search Options
We’ve added additional areas to the search, including: formats/filters, style sheets, plug-in commands, 4D commands, constants and folders. And of course, you can still search through: forms, methods of any type, menus and menu commands, choice lists, tables and fields, code comments, library pictures, static texts and help tips.
Powerful Results Handling
• Results are grouped by object type, then alphabetical order, in the results window. This should make results easier to read.
• A toolbar is available to make working with the displayed results easier. For instance, you can display a sub-list by selecting an object type, or you could modify it by expanding or collapsing the hierarchical items in the results list.
![]()
Better Results Display
To improve the readability of your code, or to more easily isolate object families in your database, you can add a prefix or rename variables, project methods and forms, all in just one action.
With a simple click on an option, both Callee objects and Caller objects can be prefixed or renamed. Callee objects reference the selected objects (Caller objects), such as methods calling the method to be prefixed or renamed.

Multiple access search mode
A new function from the Explorer displays a list of objects in the database (methods or menus) that reference the project method selected.
Now, all you have to do is to change the project method name (prefixing or renaming it) once, and the modification is automatically made to every object in your database that uses this method. It’s faster and less error-prone than manually renaming methods!
Verify Changes
A button inside the results window allows you to verify a global search and to check whether all the changes made have been handled properly.
Errare humanum est
Sometimes the code you write won’t behave the way it is supposed to behave. A variable that doesn’t have the proper value, a loop that doesn’t end or even an incorrect selection – all of these things can hurt your development. In this type of situation, a debugger is your greatest ally.
All you need is a point!
Put a stop point in the suspect part of the code to automatically call the debugger. Follow execution line by line while continually viewing content expressions (variables, fields, pointers, etc.) simply using mouse-over or by selecting the expressions.
The complete list of objects, variables, fields, sets, selections, processes, etc. is also kept up to date and available to let you know the status of your development when the executed line is executed.
A dedicated area displays the call string that displays method concatenation and executed scripts before reaching the break point.
Follow the arrow
An arrow-shaped cursor in the margin indicates the current line to be executed.
Move the cursor to execute the selected line(s) as many times as necessary or, inversely, to skip a portion of the code. Take advantage and modify the contents of a variable and verify behavioral changes.
SQL under scrutiny too
In 4D v11 SQL, you can also debug SQL code contained inside the Start SQL / End SQL command. You can also simultaneously debug your SQL code and your 4D code in the same debugger.
The resource explorer allows you to manage from any node - client or server - resources whose implementation previously required the application be stopped. Whether they're files from your image library or, for example, XLIFF files for localization, you can simply manage all of your resources by dragging and dropping them on the resource explorer.
You can even set your preferences to synchronize resources with other clients - in real-time or delayed - so that they can be used on every node.
Features
• Dynamic synchronization with connected clients (with manual or automatic notification)
• Live preview of images
• Drag-and-drop control of elements
• View as a list
Design and model the architecture of your database with ease using the 4D Structure Editor.
Just one click
With just one mouse click and the Properties inspector, you can add tables, fields, relations, and change settings on the fly.
Always-on validation
Our new SQL syntax check dynamically validates tables and fields as you work, so you always know that your structure is SQL-compatible.
Easy on the eyes
The Structure Editor has a number of tools to help you organize your application code for better readability,. For example, the cardinality of relations are displayed clearly (0<minimum > 1, 1<maximum > n) to avoid any confusion when reading.
Some of our other editing tools include:
• Zoom: In the blink of an eye, you can see your complete structure or drill down to focus on a specific element.
• Alignment: You can optimize the location and the size of tables for better visual clarity.
• Field Sort: You have multiple options for sorting field order.
• Color coding for tables, fields, and indexes.
Application analysis
There are a number of features available within the structure editor to help you during application analysis. For example, when you're working on a complex structure, you can choose to hide parts in order to focus on the remaining elements without distraction.
Clear organization
Using group management, you can organize a database structure by feature. This makes it easy to hide tables that don’t belong to the feature that you want to analyze.
The Explorer is the 'nerve center' of your application development process. It's a powerful, in-depth tool that lets you look at your entire database and access each element in the blink of an eye.
Master your application
The Explorer gives you a global vision of everything in your application and a fast way to access all its elements in just one place: tables, forms, methods, order lists, plug-ins, available components, and pretty much anything else you can think of.
Create, delete, restore
The buttons
and
allow you to create or delete tables, forms, or methods.
The trash bin holds all deleted elements so that you can recover them if needed. It's one more level of security to keep you from having to waste time recovering from a mistake.
Preview and comment
A window pane lets you preview or comment on the selected object.
In preview mode, you can also select or copy the code of a method directly, without having to open the method editor.
Drag-and-drop anyplace
You can drag-and-drop objects from the Explorer to most editors in 4D.
Automatic renaming and prefixing
A new feature in the Explorer displays a list of objects in your database (methods or menus) referencing a selected project method. To rename a method, or add a prefix to the name, all you have to do is change the name once, and that change is automatically pushed out to every object in your database that uses the method. It's faster and less error-prone that manually renaming methods. You used to need 4D Insider to do this, but in 4D v11 SQL, it's built right into the Explorer.
This is a guaranteed time-saver that lets you put an end once and for all to the risk of errors when manually renaming!
Organize by group and re-use your elements
The Home page and its contextual menu gives you the option of organizing database objects (tables, methods, and forms) by functionality into folders. For example, you could group all objects used for billing into the same folder. This makes code maintenance much easier.
Even better, you can re-use this folder in another database using copy/paste or drag-and-dropping the folder!
Menus are a critical tool in all professional applications. 4D has created a powerful editor to help you build them as easily as possible.
Menus… à la carte!
You can set up all of the menus for your application, as well as their related sub-menus, using a single screen.
Automation is also on the menu!
Associating any of 27 pre-set actions to your menus and sub-menus requires absolutely no programming, just a click of the mouse. You can also set actions to browse through records, call the maintenance center, and more. If that's not enough choice for you, you can associate your own methods as well as the pre-set ones.
You can even set per-platform keyboard shortcuts!
Strong access controls
User and Group access control managent tools are integrated to make adding security easy. All you need to do is decide who gets access to which menu or sub-menu items and 4D automatically takes care of the rest.
Menus with style
The Menu Editor also lets you apply standard styles and icons to menus for better UI integration.
Designing a toolbar instead of a drop-down menu is also very easy: All you need to do is associate an icon to an action to add more functions to the toolbar. You'd be hard-pressed to find an easier way.
Menus for every language
As of 4D v11 SQL, 4D supports the XLIFF standard for localization, which allows you to automatically localize your menus in every language supported by your application. 4D also selects the default language on launch.
Thanks to the 4D ODBC driver, any application able to “speak” ODBC can access the data in your 4D databases.
This makes it easy to produce graphs and reports using your data with Crystal Reports or Microsoft Excel, or even to create a Microsoft Word report, merge it with a set of contacts, and e-mail everyone the resulting documents.
More openness
With ODBC is supported in both Windows and Mac OS, you can run fully cross-platform applications using these functions.
In addition, 4D's native Unicode support lets you offer full application compatibility regardless of the language or dialect you use.
Maintain security
With 4D, open data is still secure data. Our Users and Groups management protocol restricts all data access to authorized people only. We also support integrated SSL for end-to-end data encryption.
Pictures used in 4D maintain their original format and type for both display and storage.
Native support
4D supports a number of picture formats natively (JPEG, PNG, BMP, GIF, TIF, and PICT) without requiring QuickTime. In addition, EMF is natively supported on Windows, and PDF on Mac.
No changes to the original
4D uses graphics without modifying their properties (transparency, shadowing, etc). The selected display format determines how the picture is displayed (truncated, centered, with or without scroll bars, etc) but the original graphic always remains unchanged.
Your image files can be used as static pictures, variables, or fields.
Save, import, and export your pictures
Pictures are stored “as is” regardless of how they are placed in fields (pasted, imported using a contextual menu, programmatically, etc.)
Automatic drag-and-drop
Drag-and-drop is managed automatically between objects – fields or variables – or between an object and an outside element (such as a document saved to disk). This feature can also be disabled, if preferred.
Images in context
You can associate a contextual menu to variables and Picture fields. This menu allows editing (cut, paste, copy), importing, exporting (where you can change the field type during export) and defining the display parameters (truncated, non-truncated, etc).
New commands as of 4D v11 SQL
Image editing
You can do basic image manipulation in the Image Library using “operators”: resize, rotate, and other modifications. Pictures keep their original characteristics, only the way they are displayed actually changes. If you want to remove your changes, you can reset the graphics and revert to the original options.
Other operations (which cannot be reset) are also possible: reframing and dimming.

Combine pictures
This new command lets you combine pictures – picture1 and picture2 – to create a third, called pictureResult. The resulting image maintains all characteristics of the source pictures.
Type conversion
You can convert a picture from its original format to a new one (like from TIFF format to JPG).
Use your pictures
Just like fields and variables, pasted pictures (or dragged) in the Picture Library keep their original format. They can be transparent, shadowed, or used as is in forms, as static images (icons, logos) or as dynamic objects like buttons.
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.
Add new interface tools
4D forms can create rich interfaces by embedding areas managed by a plug-in. You can create UI tools ranging from a simple graphic display to a more complex application such as a customized spreadsheet.
Start with the API library
The 4D Plug-in API library, written in C, adds more than 400 functions that help you to easily create your own plug-ins. 4D Plug-in API functions manage all the interactions between the 4D application and your plug-in.
Build a plug-in with a few clicks
The 4D Plug-in Wizard is the perfect tool to help you build the framework for your plug-in, ready to compile using Microsoft Visual Studio on Windows or XCode on Mac.

A plug-in being built using 4D Plug-in Wizard

Once built with the 4D Plug-in Wizard, the same plug-in is edited in Visual Studio
Open Source
As of November 2009, 4D Plug-in SDK is open source.
Sources are hosted at http://sources.4d.com, which provides a Wiki, submission guidelines, and access to the source itself. Discussions take place on the existing 4D Plug-in Mailing List.
Source code is available through Subversion Client. 4D Plug-in SDK is distributed under the MIT (X11) license.
New as of 4D v11 SQL
Universal Binary support
4D Plug-in SDK now generates Universal Binary plug-ins that will run natively on both PPC and MacIntel systems.
Unicode support
4D communicates with plug-ins using Unicode, to ensure that your plug-ins work perfectly on any system or in any foreign language.
Optimized image support
Your plug-in can now handle all 4D supported pictures formats (PDF, JPEG, SVG, TIFF, PNG, etc).
4D v11 SQL is 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.
4D v11 SQL is up to the challenge of even the most demanding projects.
Bigger Size
Our expanded capacity lets you serve ever-increasing data storage requirements without a problem.
Better Performance
We've rewritten everything for guaranteed performance no matter how large your database.
64-bit data file access.
• Optimized, 64-bit ready memory management
• Read-ahead buffers generalized for data file access
• Optimized management of large image and BLOB fields
• Native ultra-fast Unicode character access, through removal of internal ASCII conversions.
4D v11 SQL also provides new, specialized index types to optimize data requests:
• Composite Index: Simultaneous indexing of values from two or more fields (for example, First Name and Last Name).
• Keyword Index: Index every word in a text field for near-instantaneous full-text searching.
• Cluster Index: Faster than B-Tree indexing for fields with a high percentage of redundant values.
Transaction Management
4D v11 SQL includes a multi-level transaction management system loaded with automatic sub-transactions.
Universal Binary Architecture
4D v11 SQL is 100% Universal Binary compliant. You can now take full advantage of Apple's latest Intel processors while running 4D.
Automatic Administration
4D v11 SQL databases in production are designed to need minimal regular maintenance, but when you do need to do database maintenance, there is a set of integrated tools to help you in the new Security and Maintenance Center, as well as 4D language commands.
Web Services allow an application to call another application using standard protocols such as SOAP and WSDL, independent of the platform or language used.
Since 4D Web Services are written to support Internet standards, they allow 4D developers to build applications that communicate across a local network as well as over the Web.
4D can act as a Web services client, a Web services server, or both.
Web Services Client
4D v11 SQL includes a wizard that allows you to automate the process for generating Web Services calls in a 4D method. This wizard translates the WSDL files provided by the remote service into 4D code that you can use immediately.
Single-click Web Services Server
Publishing Web Services has never been so easy, thanks to the 4D integrated Web Services server.
In a single click, existing project methods are transformed into public SOAP methods. If specified, 4D v11 SQL automatically provides service documentation in a WSDL (Web Service Description Language) file.
For the maximum level of openness, 4D v11 SQL also handles RPC* and DOC* publications:
• SOAP: Simple Object Access Protocol (SOAP) is a RPC oriented protocol built on XML. It allows sending messages between remote objects, which means that it authorizes an object to invoke object methods physically located on another server. The transfer is done most often using the HTTP protocol, but can also be done using another protocol, such as SMTP.
• WSDL: Web Services Description Language. This is an attempt at standardization that publishes the description of elements needed to access a network (Web) service. It uses the XML language and was created in 2001 at the W3C for standardization purposes.
• RPC: Remote Procedure Call is a protocol that allows calling procedures on a remote computer using an application server. This protocol is used in client-server setups and allows onoing messages between these entities.
• DOC: Document-oriented Web services
Build and distribute
The application builder is the most important tool for developers who distribute customized business applications.
Configure and customize
After configuring and saving the different settings that customize the application (application type, customer logo, destination of the generated application, etc.), you will be able to apply all settings to your application at any time. Plus, our contextual help system keeps you informed about the results of your choices.
Set parameters and keep control
4D's multi-project architecture allows you to generate several applications in a single action using just a click of the mouse. This lets you provide a unique version of a single development to distinct customers.
Because your customers don’t all have the same needs, you can parametrize the options you want to include (or not) when distributing. For example, you can turn on word processing for some customers, and leave it out for others.
All settings of the application builder are stored in XML files, which means that you have full, replicable control over the entire process.
Ready-to-use components
As of 4D v11 SQL, the new components architecture makes component distribution easy. The application builder makes sure that all elements necessary for each component are gathered into one folder and included in a distribution automatically.
Automatic application updates
After updates have been made, our automated distribution process lets you push out changes across the client/server environment to each desktop without any human intervention.
The benefits are felt immediately: you spend less time updating clients and more time getting work done.
What’s a component?
A component is a library of code and screens that you can drag-and-drop into any of your applications.
Using this mechanism, you can create basic code building blocks, test them, then share them in collaborative development efforts or distributed to your customers.
Modular development
If you've wanted to do modular development in 4D, components let you do just that. There's a lot of ways that components can help speed development and deployment. Here are a few examples:
• One developer builds a library of tools, like a file management command set. Every other developer on the team can then use this library as easily as they use the 4D language commands.
• You built a vacation tracking application and you want to distribute it to your customers. Distribute it as a component and their application will automatically be enriched with the tables, fields, dialog boxes, and scripts that allow using this functionality.
New as of 4D v11 SQL
Immediately operational
A component is a completely independent 4D database. No need for external tools to create one! You just have to select the methods that will be published and check the sharing option. That’s it!

Using a component is just as easy: drop the component in a dedicated folder and take immediate advantage of the new features.
As easy as hello!
Updating a component is easy – delete the old one and drop a new one in its place.
Save time, stay Zen
You don't need to update the entire application when you update a component anymore. Send the updated component to your customer, and that’s it!
More security and performance
Components can be compiled to protect the underlying code. Since compiled code runs faster, this security step has added application performance benefits: faster launch time.
Ready to use
Generate your compiled component and distribute the module directly to your customers!
Errare humanum est
Sometimes the code you write won’t behave the way it is supposed to behave. A variable that doesn’t have the proper value, a loop that doesn’t end or even an incorrect selection – all of these things can hurt your development. In this type of situation, a debugger is your greatest ally.
All you need is a point!
Put a stop point in the suspect part of the code to automatically call the debugger. Follow execution line by line while continually viewing content expressions (variables, fields, pointers, etc.) simply using mouse-over or by selecting the expressions.
The complete list of objects, variables, fields, sets, selections, processes, etc. is also kept up to date and available to let you know the status of your development when the executed line is executed.
A dedicated area displays the call string that displays method concatenation and executed scripts before reaching the break point.
Follow the arrow
An arrow-shaped cursor in the margin indicates the current line to be executed.
Move the cursor to execute the selected line(s) as many times as necessary or, inversely, to skip a portion of the code. Take advantage and modify the contents of a variable and verify behavioral changes.
SQL under scrutiny too
In 4D v11 SQL, you can also debug SQL code contained inside the Start SQL / End SQL command. You can also simultaneously debug your SQL code and your 4D code in the same debugger.
Design and model the architecture of your database with ease using the 4D Structure Editor.
Just one click
With just one mouse click and the Properties inspector, you can add tables, fields, relations, and change settings on the fly.
Always-on validation
Our new SQL syntax check dynamically validates tables and fields as you work, so you always know that your structure is SQL-compatible.
Easy on the eyes
The Structure Editor has a number of tools to help you organize your application code for better readability,. For example, the cardinality of relations are displayed clearly (0<minimum > 1, 1<maximum > n) to avoid any confusion when reading.
Some of our other editing tools include:
• Zoom: In the blink of an eye, you can see your complete structure or drill down to focus on a specific element.
• Alignment: You can optimize the location and the size of tables for better visual clarity.
• Field Sort: You have multiple options for sorting field order.
• Color coding for tables, fields, and indexes.
Application analysis
There are a number of features available within the structure editor to help you during application analysis. For example, when you're working on a complex structure, you can choose to hide parts in order to focus on the remaining elements without distraction.
Clear organization
Using group management, you can organize a database structure by feature. This makes it easy to hide tables that don’t belong to the feature that you want to analyze.
The Explorer is the 'nerve center' of your application development process. It's a powerful, in-depth tool that lets you look at your entire database and access each element in the blink of an eye.
Master your application
The Explorer gives you a global vision of everything in your application and a fast way to access all its elements in just one place: tables, forms, methods, order lists, plug-ins, available components, and pretty much anything else you can think of.
Create, delete, restore
The buttons
and
allow you to create or delete tables, forms, or methods.
The trash bin holds all deleted elements so that you can recover them if needed. It's one more level of security to keep you from having to waste time recovering from a mistake.
Preview and comment
A window pane lets you preview or comment on the selected object.
In preview mode, you can also select or copy the code of a method directly, without having to open the method editor.
Drag-and-drop anyplace
You can drag-and-drop objects from the Explorer to most editors in 4D.
Automatic renaming and prefixing
A new feature in the Explorer displays a list of objects in your database (methods or menus) referencing a selected project method. To rename a method, or add a prefix to the name, all you have to do is change the name once, and that change is automatically pushed out to every object in your database that uses the method. It's faster and less error-prone that manually renaming methods. You used to need 4D Insider to do this, but in 4D v11 SQL, it's built right into the Explorer.
This is a guaranteed time-saver that lets you put an end once and for all to the risk of errors when manually renaming!
Organize by group and re-use your elements
The Home page and its contextual menu gives you the option of organizing database objects (tables, methods, and forms) by functionality into folders. For example, you could group all objects used for billing into the same folder. This makes code maintenance much easier.
Even better, you can re-use this folder in another database using copy/paste or drag-and-dropping the folder!
Menus are a critical tool in all professional applications. 4D has created a powerful editor to help you build them as easily as possible.
Menus… à la carte!
You can set up all of the menus for your application, as well as their related sub-menus, using a single screen.
Automation is also on the menu!
Associating any of 27 pre-set actions to your menus and sub-menus requires absolutely no programming, just a click of the mouse. You can also set actions to browse through records, call the maintenance center, and more. If that's not enough choice for you, you can associate your own methods as well as the pre-set ones.
You can even set per-platform keyboard shortcuts!
Strong access controls
User and Group access control managent tools are integrated to make adding security easy. All you need to do is decide who gets access to which menu or sub-menu items and 4D automatically takes care of the rest.
Menus with style
The Menu Editor also lets you apply standard styles and icons to menus for better UI integration.
Designing a toolbar instead of a drop-down menu is also very easy: All you need to do is associate an icon to an action to add more functions to the toolbar. You'd be hard-pressed to find an easier way.
Menus for every language
As of 4D v11 SQL, 4D supports the XLIFF standard for localization, which allows you to automatically localize your menus in every language supported by your application. 4D also selects the default language on launch.
Thanks to the 4D ODBC driver, any application able to “speak” ODBC can access the data in your 4D databases.
This makes it easy to produce graphs and reports using your data with Crystal Reports or Microsoft Excel, or even to create a Microsoft Word report, merge it with a set of contacts, and e-mail everyone the resulting documents.
More openness
With ODBC is supported in both Windows and Mac OS, you can run fully cross-platform applications using these functions.
In addition, 4D's native Unicode support lets you offer full application compatibility regardless of the language or dialect you use.
Maintain security
With 4D, open data is still secure data. Our Users and Groups management protocol restricts all data access to authorized people only. We also support integrated SSL for end-to-end data encryption.
Pictures used in 4D maintain their original format and type for both display and storage.
Native support
4D supports a number of picture formats natively (JPEG, PNG, BMP, GIF, TIF, and PICT) without requiring QuickTime. In addition, EMF is natively supported on Windows, and PDF on Mac.
No changes to the original
4D uses graphics without modifying their properties (transparency, shadowing, etc). The selected display format determines how the picture is displayed (truncated, centered, with or without scroll bars, etc) but the original graphic always remains unchanged.
Your image files can be used as static pictures, variables, or fields.
Save, import, and export your pictures
Pictures are stored “as is” regardless of how they are placed in fields (pasted, imported using a contextual menu, programmatically, etc.)
Automatic drag-and-drop
Drag-and-drop is managed automatically between objects – fields or variables – or between an object and an outside element (such as a document saved to disk). This feature can also be disabled, if preferred.
Images in context
You can associate a contextual menu to variables and Picture fields. This menu allows editing (cut, paste, copy), importing, exporting (where you can change the field type during export) and defining the display parameters (truncated, non-truncated, etc).
New commands as of 4D v11 SQL
Image editing
You can do basic image manipulation in the Image Library using “operators”: resize, rotate, and other modifications. Pictures keep their original characteristics, only the way they are displayed actually changes. If you want to remove your changes, you can reset the graphics and revert to the original options.
Other operations (which cannot be reset) are also possible: reframing and dimming.

Combine pictures
This new command lets you combine pictures – picture1 and picture2 – to create a third, called pictureResult. The resulting image maintains all characteristics of the source pictures.
Type conversion
You can convert a picture from its original format to a new one (like from TIFF format to JPG).
Use your pictures
Just like fields and variables, pasted pictures (or dragged) in the Picture Library keep their original format. They can be transparent, shadowed, or used as is in forms, as static images (icons, logos) or as dynamic objects like buttons.
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.
Add new interface tools
4D forms can create rich interfaces by embedding areas managed by a plug-in. You can create UI tools ranging from a simple graphic display to a more complex application such as a customized spreadsheet.
Start with the API library
The 4D Plug-in API library, written in C, adds more than 400 functions that help you to easily create your own plug-ins. 4D Plug-in API functions manage all the interactions between the 4D application and your plug-in.
Build a plug-in with a few clicks
The 4D Plug-in Wizard is the perfect tool to help you build the framework for your plug-in, ready to compile using Microsoft Visual Studio on Windows or XCode on Mac.

A plug-in being built using 4D Plug-in Wizard

Once built with the 4D Plug-in Wizard, the same plug-in is edited in Visual Studio
Open Source
As of November 2009, 4D Plug-in SDK is open source.
Sources are hosted at http://sources.4d.com, which provides a Wiki, submission guidelines, and access to the source itself. Discussions take place on the existing 4D Plug-in Mailing List.
Source code is available through Subversion Client. 4D Plug-in SDK is distributed under the MIT (X11) license.
New as of 4D v11 SQL
Universal Binary support
4D Plug-in SDK now generates Universal Binary plug-ins that will run natively on both PPC and MacIntel systems.
Unicode support
4D communicates with plug-ins using Unicode, to ensure that your plug-ins work perfectly on any system or in any foreign language.
Optimized image support
Your plug-in can now handle all 4D supported pictures formats (PDF, JPEG, SVG, TIFF, PNG, etc).












