directories nnwhere nn is the number of Zim directories that can be accessed at any one time.
Valid Settings
nn = numeric entry 3 to 200
| Windows | 10 |
| UNIX | 10 |
directories nnwhere nn is the number of Zim directories that can be accessed at any one time.
nn = numeric entry 3 to 200
| Windows | 10 |
| UNIX | 10 |
work path pathwhere path is the disk directory path to the temporary work files for a session. The work path is valid for all users accessing the database and is formed by adding the work path with the user number that is entering the database at that time. For example:
work path /usr/users
Users will get work paths like:
/usr/users/00001 /usr/users/00002
The default work path is the database itself.
Any directory path.
runtime buffers nn
where nn is the number of in-memory data buffers used when writing or reading compiled programs to or from the disk. Each buffer holds 1 KB. Increasing the number of buffers improves system performance, but increases the amount of internal memory needed. Specify any whole number within the permitted range, provided that the computer has enough memory.
The general effect of this option is that, when running compiled applications, the bigger this value, more compiled programs can stay in memory at the same time thus increasing performance of the application.
nn = numeric entry 100 to 10000
| Windows | 100 |
| UNIX | 100 |
parameter size nn
where nn specifies the maximum size of any single IN-type parameter or local variable used in an application program’s procedures.
IN parameters and local variables are stored internally as VARCHAR variables with a maximum size of nn. If the size of any IN parameters or local variables is larger than the default value of nn, increase nn. Conversely, if all parameters are significantly smaller than the default size, reduce nn to save memory.
nn = numeric entry 0 to 32000
| Windows | 256 |
| UNIX | 256 |
user name directory yes/no
It specifies that the working directory for the user starting a Zim session must be named after the user number or the user name.
For example, with :
user name directory yes
work path /usr/users
Users will get work paths like:
/usr/users/Chris
/usr/users/Deborah
instead of
/usr/users/00001
/usr/users/00002
The default setting is no.
Notice that the user names must be known by Zim in the Users entity set.
backscreen prompt yes | no
Specifies whether the ZXClient prompt will be available when upon its start-up, that is, the user will not be able to interact with the prompt. The end result is that the user must follow the instructions provided by the Zim application.
yes indicates prompt is available whereas no indicates the prompt will not be available for the user. The default value is always yes.
sort buffers nn
where nn is the maximum amount of memory (KB) that can be used when sorting data. If the requested amount of memory is not available, all available memory up to the limit specified by nn is used.
During a sorting process, fields of data to be sorted are extracted and put into sort records that are placed into sort buffers. Then, either the entire sort is performed in available memory or, if not enough memory is available, sort records spill into temporary disk files (the zimstxxx files).
A sort that occurs entirely in memory is quickest. If a sort process must use disk space, the records placed in temporary disk files must be merged back into the sorted order, resulting in reduced performance.
A high value for sort buffers has two effects:
Sort buffers space is acquired only during a sorting process and is returned once the sort is completed.
Set operations (UNION, INTERSECT, and MINUS) and the KEEP subcommand generate sort operations internally. Their speed is therefore also affected by the amount of sort buffer space.
nn = numeric entry 100 to 10000
| Windows | 1000 |
| UNIX | 1000 |
century threshold n default century n
where n is a numeric entry (see below for more information)
These two configuration options control the century used when date-masked fields contain ‘ YY’ instead of ‘ YYYY’.
If a field is masked only with ‘ YY’ and not ‘ YYYY’, then the end-user cannot enter the century, and Zim assumes the century is 19. Application developers are strongly urged to either i) use ‘ YYYY’ to mask date fields, or ii) use the two configuration options to automatically increment the century for certain date ranges.
Note:The former approach always works, while the latter works for applications with well-defined input data that falls into certain date ranges.
The default century is a number from 0 to 99 that is copied to the century position of a date when the end-user can enter only two year digits. If the century threshold is -1, then this default century is used verbatim. If century threshold is on the range 0 to 99, then the default century is incremented if the year entered by the end-user is less than n. The table below gives examples of resulting dates given user input and the input mask of ‘MM/DD/ YY’:
| User Input | Default Century | Century Threshold | Resulting Date ( YYYYMMDD) |
| 12/12/94 | 19 | -1 | 19941212 |
| 12/12/94 | 20 | -1 | 20941212 |
| 12/12/01 | 19 | 30 | 20011212 |
| 12/12/35 | 19 | 30 | 19351212 |
| 12/12/35 | 20 | 30 | 20351212 |
In general, if your application must deal with widely-ranging dates, then use an input mask of ‘ YYYY’ to obtain expected results. However, if your application deals with dates of events occurring in the present, such as tagging orders with the order date, then an input mask of ‘ YY’ is sufficient, and set century threshold to a value, such as 50.
nn = numeric entry 0 to 99
| Windows | -1 |
| UNIX | -1 |
nn = numeric entry -1 to 99
| Windows | 19 |
| UNIX | 19 |
A number of conventions are used throughout this guide to indicate how to enter commands. These include:
When you are to press two keys at the same time, they are written as Key1+Key2. This means that you should hold Key1 down and then press Key2.
When the general syntax of a Zim:X command is illustrated, the command syntax uses these rules:
| Syntax | Description |
| Any Text | Typewriter-style words that are not underlined (e.g., ZOMList) are to be entered as written. This includes all punctuation marks (i.e., commas, periods, colons, parentheses, etc.) except for those noted below. |
| Any Text | Typewriter-style words that are underlined (e.g., formname) are to be replaced with appropriate entries of the indicated type. |
| [ ] | Items in brackets ([ ]) are optional. The brackets themselves are not entered. An exception is the subscript notation used in connection with variables and form fields. Array variables and repeating forms or form fields are distinguished by a number that appears in brackets. For example: RepeatingField[3]. In this case, the brackets must be entered. |
| || || | Vertical lists bounded by parallel lines ( || || ) indicate a group of possible options, at least one of which must be chosen. The lines themselves are not entered. |
| << >> | Items bounded by the symbols << and >> can be repeated one or more times. Unless otherwise noted in the individual descriptions, each item in such a series is separated from the next by a space. |
| | | Items that are separated by a vertical bar (|) indicate a choice of one of the given items. |
| ABC | In text descriptions, all commands, keywords, and operating system utility names appear in uppercase letters (e.g., SET EXCEPTION, ZIMINIT). |
| Italic Items | Italic items (e.g., path) are to be replaced by entries of the appropriate type (e.g., the characters nn are to be replaced by a number). |
| Punctuation | Commas, periods, colons, parentheses, etc. are to be entered exactly as written. |
Note: Zim:X makes no distinction between uppercase and lowercase letters in identifying command names. However, in operating systems such as LINUX, the case of operating system utilities is important. All operating system utility names should be entered in lower case.
The following table describes the methods by which commands and instructions can be entered:
| enter | Type the given information and press the Return or Enter key. |
| press | Press the given key, or key combination, once. |
| use | Press the given key, or key combination, as often as necessary to achieve the desired result. |
ZIM is an enterprise-grade application framework ecosystem powered by an object-oriented 4GL natural programming language. Originally developed by Bell Canada and Nortel Networks in the mid-1980s, ZIM pioneered the full-stack application framework and remains one of the most powerful and intuitive platforms for building enterprise-grade applications.
✅ Natural Language Programming
ZIM uses English-like syntax such as find all Customers. instead of verbose SQL or multi-layered Python scripts. Developers focus on business logic, not boilerplate.
✅ Unified Language + Database
No need for ORMs or middleware. ZIM integrates programming and database operations natively for seamless execution.
✅ Built-In Entity-Relationship Model
Relationships are defined once and reused across the system, eliminating repetitive JOINs and reducing code complexity.
✅ Superior Performance
ZIM’s METAEngine allows multiple commands per transaction, making data operations faster and more efficient than traditional SQL servers.
✅ Edge-Ready Architecture
ZIM powers real-world IoT deployments, replacing PostgreSQL for edge-level processing on devices like Raspberry Pi.
ZIM’s full stack is compatible with:
This cross-platform flexibility allows ZIM applications to run seamlessly across enterprise servers, desktop environments, mobile devices, and embedded systems.
ZIM operates under a robust client/server model:
Key Features:
ZimAdmin is a powerful graphical management console designed to simplify the configuration, monitoring, and management of all ZIM databases and ZIM Server machines within your network. With its intuitive interface, ZimAdmin provides a seamless experience for database administrators.
Key Features:
User Interface:
Creating a New Database:
To create a new ZIM database, right-click on the Database folder and select “Create Database,” then follow the prompts.
ZimAdmin is your go-to tool for managing complex database environments with ease and precision. Explore the full potential of your ZIM network with ZimAdmin today!
| Feature | ZIM | Traditional Stack (JS, Python, PostgreSQL, Apache) |
|---|---|---|
| Language & DB Integration | ✅ Native | ❌ Requires APIs/ORMs |
| Natural Language Syntax | ✅ English-like | ❌ Technical/Verbose |
| ER Model Support | ✅ Built-in | ❌ Manual JOINs |
| Client/Server Architecture | ✅ Unified | ❌ Fragmented |
| Edge Deployment | ✅ Proven | ❌ Complex |
| GUI + TUI Support | ✅ Native | ❌ Requires frameworks |
| Licensing & Activation | ✅ Server-managed | ❌ Client-side installs |
| Platform Compatibility | ✅ Windows, Linux, Embedded Linux, Android | ❌ Varies by toolset |
Whether you’re building safety systems, IoT pipelines, enterprise dashboards, or mission-critical applications, ZIM-X offers a faster, smarter, and more secure way to develop and deploy.
ZIM is not just a tool—it’s a philosophy. It’s how enterprise software should be built.