DataFlex in Evolution

A White Paper


Data Access Corporation
Publication date: November 1992

 

Since its release into the marketplace in 1981, DataFlex has become one of the premiere application development environments available. With the release of DataFlex 3.0 in August of 1991, major changes were brought to DataFlex. Even more powerful than DataFlex 2.3b, the new revision of DataFlex maintains compatibility with its predecessor while adding enhanced capabilities.

Application Development Environment

DataFlex 3.0 provides a complete, integrated application development environment. The utilities of the release are consistent,
intuitive, and powerful. For the first time, all the tools needed to build complete commercial state-of-the-art applications can be purchased in a single package.

Improved Database Management System

For over ten years, DataFlex has been known as an outstanding performer in database applications. Offering the same fast, reliable database management system, however, is not enough these days. Enhancements to both database performance and reliability have made the DataFlex DBMS one of the top competitors on today's commercial market.

Object-Oriented Language & Tools

The software industry has embraced Object-Oriented Programming because of its outstanding capabilities when writing large, complex applications. Microsoft and Borland, the two largest software companies in the world, are completely convinced that OOP is the direction of software development. Data Access Corporation realized this strategy before it became a commercially embraced technology, because it offered a magnitude of benefits compared with procedural development. DataFlex gives you the tools to build these cutting-edge applications today.

Using What You Know

Over $500 million worth of DataFlex applications have been sold worldwide. Behind all that software stands a great deal of application development experience, a commodity Data Access Corporation hopes to build on for the future. Quite simply, the DataFlex community is filled with experts in DataFlex programming. And because of that, Data Access Corporation has made great strides to ensure compatibility between DataFlex 2.3b and DataFlex 3.0. Without recompilation or conversion, DataFlex 2.3b applications can run under the DataFlex 3.0 runtime. The migration path, then, has been simplified. DataFlex 2.3b is a great
product--DataFlex 3.0 builds on that excellence.

There is far more to the release of DataFlex 3.0 than Object-Oriented Programming, although OOP is a direction Data
Access Corporation foresees the market heading. The nature of changing to the OOP paradigm, however, prevents this change from occurring overnight. The compatibility with 2.3b, however, allows developers to migrate into DataFlex 3.0 at their own pace.

One Step Further

In July of 1992, Data Access Corporation released DataFlex 3.01, further enhancing the capabilities of the DataFlex Application
Development System. DataFlex 3.01 addresses many of the issues DataFlex 3.0 overlooked. Primarily, DataFlex 3.01 simplifies the migration process by giving developers better tools. Furthermore, added testing of the product makes it a more stable and reliable platform.

What is DataFlex 3.01?

DataFlex 3.01 is comparable to DataFlex 2.3b. When DataFlex 2.3 was released, problems were found; DataFlex 3.0 met the same reception. But DataFlex 3.01 is more than a maintenance release. New features and utilities are added to the product to make migration simpler and the product more capable. Further, a complete Microsoft Windows runtime has been added for developers considering moving to this environment.

For developers working with the object-oriented features of DataFlex 3.0, some specification changes were made to allow the
creation of more complex applications. The number of objects available in a single program was increased from 512 to 4096. The
number of message names for a single program was increased from 1024 to 4096. This specification change adjusts DataFlex for the future, as applications grow in capability and complexity. One other change occurred with 3.0's new array feature (part of the object system). 3.01 adds a special message to sort arrays. The remaining 3.01 changes apply to both procedural and OOP developers.

Cyclic Redundancy Checking (CRC)

Occasionally during operation of DataFlex, problems can arise that cause data file headers to become corrupted. This can occur, for example if a user powers down the computer during a disk-write operation. Prior to the release of DataFlex 3.01, detecting this
problem was not always easy or immediate. The solution, of course, was not easy or immediate either. Typically, there were two methods to remedy a corrupted header:

Restoring from a backup and re-entering new records, or

"Patching" the header (using knowledge of the header format) and extracting the data to ASCII.

With DataFlex 3.01, corruption detection occurs when the file is opened. The data file and the runtime perform Cyclic Redundancy Checking, an algorithm matching bytes in the header. If the bytes do not match, DataFlex reports an error and returns to the operating system (it is a fatal error).

Rather than leaving the user stranded, however, DataFlex 3.01 also incorporates a special recovery utility. This utility utilizes a new special file called the .HDR, created each time the file is saved in File Definition. The .HDR resembles a "snapshot" of the first block of the header record, known as Header Block Zero. Information contained in this region includes the maximum number of records, the number of records used, and the record length. Using the File Maintenance Utility, called DFMAINT, the .HDR can be used to rebuild the corrupted header. This operation does not affect any data, but it does allow patching the header, without having to know which bytes in the header to manipulate.

The net result of CRC checking, DFMAINT, and the .HDR files is increased reliability of data. If corruption does occur, there is a safety net so that a recovery can be made quickly.

File Maintenance Utility

The File Maintenance Utility actually contains more than just the repair function. It has five fundamental capabilities:

  • Conversion Converting 2.3 files to 3.0 format
  • Repair Fixing corrupted header information
  • Recompress Rebuilding custom compressed files
  • Delete Deleting files from the operating system
  • Erase Purging records from a file or group of selected files
  • The File Maintenance Utility is accessible from the File
    Definition Utility (it executes a RUNPROGRAM WAIT) or
    as a stand-alone executable. Thus, you can select the option
    from File Definition or type "DFMAINT" from the operating
    system.

One of the most useful features is the ability to convert data files from the command line. The File Maintenance Utility accepts
command-line arguments to convert data files from 2.3b to 3.0 format. This is especially useful when users are remotely located.

The File Maintenance Utility also maintains a log file of all the operations that occur. This allows following up to check for
successful conversion, compression, etc.

Revision Control System

Because there are now three different revisions of DataFlex which are not all compatible with the different runtimes, a special revision control system has been developed to ensure that the correct .FLX files are being loaded. Object-oriented programs compiled with DataFlex 3.0 are incompatible with the 3.01 runtime (recompilation is necessary). In order to ensure compatibility, the 3.01 runtime checks the .FLX for the revision number. If it is 3.0, an error is issued and the program terminates. 2.3b programs can still be executed under 3.01 without recompilation.

International Characters

Support for international character sets has been improved in 3.01. For example, 3.01 brings the ability to enter currency symbols greater than two characters (the maximum is now ten bytes!).

Improved Error System

Other enhancements have been made to the DataFlex error handling system. Data Access Corporation reserves the first 100 error messages for DataFlex runtime and compile time errors. Beyond that, developers can store as many as 4000 custom error messages in the FLEXERRS file. Further, enhancements have been made to the runtime for such critical error handling as memory problems.

Microsoft Windows Runtime

The fastest-selling product of all time is Microsoft Windows 3.1. In the first six weeks of its release, Microsoft sold three million copies. Obviously, the Windows environment is popular and growing quickly. Because of this strong interest, Data Access Corporation is developing a Windows-specific version of DataFlex. Ultimately the DataFlex for Windows product will be a full graphical implementation. As part of 3.01, developers have the first phase of this project--a special version of the runtime that functions as a native Windows application. The "Character-Mode" runtime uses Windows memory management facilities, and although it is not a complete graphical implementation, does provide a first step into Windows.
There are several advantages to this:

  • Windows features such as multi-tasking and memory management
  • A head start in learning Windows
  • A head start in learning about tuning DataFlex for Windows
  • The ability to have several DataFlex applications open simultaneously
  • The ability to have several Windows applications (including
    DataFlex) open simultaneously

For applications that use DataFlex's User Interface Management System, users can use the mouse fully within the DataFlex
application. The mouse, however, does not function in procedural programs. Performance under Windows is very good because
DataFlex utilizes the native Windows memory manager. For machines with extended memory, this means the DataFlex 3.01
runtime and application can be completely loaded into memory in a contiguous block, reducing disk I/O and helping overall performance.

Contacting Data Access Worldwide

Data Access Worldwide
14000 SW 119 Ave
Miami, FL 33186
305-238-0012
Domestic Sales: 800-451-3539
Fax: 305-238-0017
email: sales@dataaccess.com
Newsgroup Server: news.dataaccess.com
Internet: http://www.dataaccess.com

Data Access Worldwide - Asia Pacific
Suite 5, 333 Wantirna Road, Wantirna VIC 3152 Australia
Phone: +61 3 9800 4233 f: +61 3 9800 4255
Sales: asiapacific@DataAccess.com
Support: support.asiapacific@DataAccess.com
Internet: http://www.DataAccess.com/AsiaPacific

Data Access Worldwide - Brasil
Av.Paulista, 1776 - 21st.Floor
São Paulo -SP - Brazil
CEP 01310-921
Phone: 5511-3262-2000
Fax 5511-3284-1579
Sales: info@dataaccess.com.br
Support: suporte@dataaccess.com.br
Internet: http://www.dataaccess.com.br

Data Access Worldwide - Europe
Lansinkesweg 4
7553 AE Hengelo
The Netherlands
Telephone: +31 74 - 255 56 09
Fax: +31 74 - 250 34 66
Sales: info@dataaccess.nl
Support: support@dataaccess.nl
Internet: http://www.dataaccess.nl

Data Access Technical Support
800-451-3539 / 305-232-3142
email: support@dataaccess.com
Visit our Support Home page to see all of our Support options: http://www.dataaccess.com/support

Data Access Technical Knowledge Base    http://www.dataaccess.com/kbase
Many answers to technical problems can be found online in the Data Access Technical Knowledge Base. Here, you can access the same live data that Data Access Worldwide technical support and development staff use to enter and track technical articles. 

Copyright Notice
This document is property of Data Access Corporation. With credit to Data Access Corporation for its authorship, you are encouraged to reproduce this information in any format either on paper or electronically, in whole or in part. You may publish this paper as a stand alone document within your own publications conditional on the maintenance of the intent, context, and integrity of the material as it is presented here.

DataFlex is a registered trademark of Data Access Corporation.

NO LIABILITY FOR CONSEQUENTIAL DAMAGES
To the maximum extent permitted by applicable law, in no event shall Data Access Corporation be liable for any special, incidental, indirect, or consequential damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use any information provided in this document, even if Data Access Corporation has been advised of the possibility of such damages. Because some states and jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.