The Database Managers, Inc.

Contact The Database Managers, Inc.

Use an RSS enabled news reader to read these articles.Use an RSS enabled news reader to read these articles.

DataFlex File Extensions

DataFlex File Extensions

by Curtis Krauskopf

Consistency is King

Even though DataFlex has been around for over 25 years, all of the file extensions used in the first versions of DataFlex are still used and mean the same thing. The introduction of OOP into the language in the early 1990s added a few more extensions (such as VLD). DataFlex's migration to the Internet in the form of the DataFlex WebApp Server in the late 1990s added a few more extensions too.

This is a list of the file extensions (in alphabetical order) that can exist in a DataFlex application.

Ext Description
BAD files are generated by the indexing program (dfindex or dfsort, depending on the runtime version) when a duplicate record or a record with invalid bytes has been detected. A .BAD file contains information about the problem that an administrative utility (dfclean) uses to fix the duplicate or invalid records. Unfortunately, .BAD files are not deleted by dfclean. The existence of a .BAD file indicates that there was a problem at that time. The only way to know for certain that the problem was fixed is to perform a new dfindex (or dfsort) on the datafile.
BP A BP file is the source code for an object that contains logic about a business process. A business process is an algorithm that exists solely to facilitate a step in a transaction. Examples of business processes are tax calculations, minimum inventory threshold calculations, security levels for various user roles, and the selection of the next inventory part to pick in a FIFO queue.
BPO A BPO (business process object) is a synonym for a BP file.

CFG files are configuration files -- files that define how DataFlex will behave on that installation.

The configuration files typically seen are:

  • filelist.cfg: associates each datafile with a unique, internal, DataFlex number.
  • termlist.cfg: In older versions of DataFlex, termlist.cfg contains the terminal (monitor and keyboard) definitions along with the DataFlex license information. More recent versions of DataFlex use termlist.cfg for the monitor and keyboard definitions.
  • collate.cfg: Provides the sorting sequence used by DataFlex indexes.
  • dfini.cfg: This is a modern version of termlist.cfg. Whereas termlist.cfg was a binary file, dfini.cfg is an ASCII file that is much easier to edit and read.
DAT DataFlex datafile or table files all have a .DAT extension. Each datafile holds one (and only one) table, so a datafile and table (in DataFlex) are synonymous. Each datafile should have a .TAG and .FD file, and optionally a .HDR, .K* files, and a .VLD file. Because of the way DataFlex runs, .TAG and .FD files are not needed by the DataFlex runtime, so .TAG and .FD files might be missing.
DD A DD (Data Dictionary) is a synonym for a DataFlex Data_Set.

Datafile (table) definitions have a .DEF extension. DEF files are written by the DataFlex file definition program. The names and versions of the file definition programs are:

DataFlex Version Program Name
2.0 - 2.3 DFFILE
3.0 - 3.2 DFFILE or DFMAINT
Visual DataFlex DBBLDR
DFR DFR files count users and verify that the limits of the DataFlex license have not been exceeded. DFR files are named number.DFR, such as 1234.DFR. The number corresponds with the DataFlex serial number for that installation.
DG A DG files is the source code for a dialog box. A dialog box is a data entry screen that forces a user to either acknowledge or cancel the box before the user is allowed to continue. Examples of dialog boxes are error messages and wizard screens.
DS A DataFlex Data_Set is an object that encapsulates the interface to a DataFlex datafile. All interaction with a DataFlex datafile should ideally occur through a Data Set Object.
DSO A DSO is a synonym for a DS (DataFlex Data_Set).
EXE EXE files are the DataFlex runtime. The runtime can not be decompiled -- only .FLX files can be decompiled. In versions of Visual DataFlex starting with 8.0, EXE files are also DataFlex programs.
FD An FD file contains an association between the real name of a datafile and the internal DataFlex number. For example, the CUSTOMER datafile might be internally associated with the number 15. FD files also contain information about the definition of each column in a DataFlex table. This is used by the DataFlex compiler to associate file and field references in source code with an internal numbering scheme used within the DataFlex runtime.
FLX files are compiled DataFlex programs. The source code for these programs can be restored by using The Database Managers' decompiling service.

An HDR file is a header file for a datafile. If header files exist, there will be one HDR for each DAT. The header file is mostly a copy of the the first 2,776 bytes of the datafile in case that part of the file gets clobbered for some reason (usually due to a hardware related failure, such as power failure). An administrative utility allows a developer to restore a damaged header based on the 'backup' provided in the HDR file. More information about HDR files is available at the Data Access Corporation website.

INC An INC file is a source file that is designed to be included into some other source file. INC files typically define macros and other extraneous and reusable bits of code. An unwritten convention says that INC files can be included multiple times within a source file without causing a compile-time error. This is in direct contrast to a package file that can only be included one time. The difference is that an INC file normally has compiler directives embedded in the source file to guard against causing compile-time errors when it is included twice, whereas a PKG file normally lacks those mechanics. INC files are normally included into source files using the #include compiler directive.

DataFlex index files have a .K* extension. The * of K* is a one or two digit number. Values of K* will range from K1 through K15. In DataFlex 2.x, the K10 index was always a 'batch' index, which means its contents were not updated when the datafile was updated. Batch indexes are only updated when the index is (re)created with dfindex or dfsort, depending on which version of DataFlex you have. This provided some advantages in certain situations, but most of those advantages have become obsolete with the faster computers and larger hard drives we enjoy today.

Index files can sometimes be enormous. I've seen index files that were bigger than the datafile they were indexing! Because index files are so big, and because the dfsort utility in modern versions of DataFlex is so fast, it's oftentimes not necessary to back up index files. The reason is that in those rare circumstances when a datafile is restored from a backup, it takes little time to reindex all of the datafiles for a small or medium-sized application. The time saved by not having to back up index files every day outweighs the time wasted reindexing a restored datafile.

Also, depending on your backup medium, it can be faster to simply reindex a datafile versus restoring the file from the backup medium.

MAC A MAC file is a source file that contains DataFlex macro definitions. See also INC files.
A PIF file is a Windows Program Information File used by Windows to determine how to run the DataFlex application.
PKG A PKG file normally contains class and object definitions. Because of that, a PKG file should normally be compiled into a DataFlex program one time. The USE command guards against compiling a PKG file twice into the same program. A PKG file is in direct contrast to an INC file, which is assumed to be included into a source file more than one time.
In 2.x versions of DataFlex, PRN files are graphic device drivers. PRN files can also be debugging output from the compiler.
RV A report view contains the class and object definitions for a specific report.
SL A selection list is an object that allows a user to choose one or more records from a scrollable list of records.
SRC An SRC file is a DataFlex source file.
Similar to an FD file, a TAG file is an ASCII file that contains a line delimited list of the fields defined in a table. It used used by DFQuery to let the user choose the fields from a datafile.
VLD In DataFlex 3.0, the variable length datafile, or VLD file, was introduced. When VLD files are used, the VLD file holds the real data and the DAT file simply holds a pointer to the location in the VLD file where the data resides. Therefore, when backing up or restoring a datafile, it's vitally important that the DAT and VLD (and HDR) be kept in synchronization with each other. A VLD file without a DAT file is completely useless, just like an index file (K*) would be without its DAT file.
VW A view is a data entry panel.
WBO A Web Business Object is a synonym for a WO file.
A Web Object provides an interface between the ASP code and the Data Sets and Business Objects.

Previous: DataFlex: An Introduction

Other Popular DataFlex topics at The Database Managers, Inc.:


DataFlex Decompiler
DataFlex: Tips | Freeware | WebApp Server | Books | Links
Services | Programming | Contact Us | Recent Updates

Send feedback to: