White Light Computing, Inc.
Guiding your Information Technology investment toward success!

DBCX Metadata Tools
(VFP 9/8/7)

DBCX Metadata Compare Utility v3.3.19 (metacompare.zip - 164KB)

(Updated 22-Jun-2005)


Working great for me so far. Thanks! This is a must have for teams doing VFE development. We already have sort of a "system" for checking in/out the data/metadata files, but this is a nice backup in case something goes wrong.
- Randy Jean, Orion Group



This product is quite simple in concept. Take two copies of DBCX metadata and check the differences between them. The idea was spawned from the author's need to see what was the difference between the database in production and the changes made to it for the newest release.


DBCX is an acronym for DataBase Container eXtensions. This is a standard developed by Stonefield Systems Group (creators of Stonefield Database Toolkit, Stonefield Query, Stonefield Reports), F1 Technologies (creators of Visual FoxExpress), Flash Creative Management (creators of CodeBook), and MicroMega Systems (creators of FoxFire!). This free extension standard allow developers to add extended properties and methods to the standard Visual FoxPro database container (DBC).

  • Only DBCX 2 supported

  • Requires VFP 7.0 for XML output and it is compiled in VFP 9 (but will run inside VFP IDE for version 9/8/7).

Special Thanks:

To Doug Hennig for his encouragement to develop this product and for his beta testing and insightful suggestions. To Toni and Mike Feltman for their endless help with Visual FoxExpress and providing excellent samples and documentation for the VFE metadata files.

To all three (Doug, Toni, and Mike) for their contribution of DBCX2 to the Fox Community. This extension has been valuable to all Visual FoxPro developers. I cannot express enough gratitude.


Short History (why is the initial release v3.x?):

When many developers first see this tool wonder how they missed v1 and v2. Simple explanation. Version 1 was developed as a huge program on the return trip from Florida to Michigan in 1999. It worked great and was a pure stream of consciousness. As soon as I got home I download my email and was going to perform a backup of all the work. Before I could get the backup performed the hard drive failed and so all the work was lost. It took me another year to get back to the task of starting over. Version two was another program and also worked efficiently for my needs, but needed to be better designed for use by the general public. Version three was developed as business objects. These objects can literally be instantiated in the Command Window and used to compare the various metadata tables. I added the interface and program as examples. I liked the interface so much that I decided to release it as a tool for general consumption, separate from source code, and free.


Source Code

At this time we are considering selling source code separately to fund some of the numerous hours spent developing the developer tools we put together, but that decision has not been made at this point. The tool can be used for free, the source code might be available for purchase later.



Version 3.3 Features (June 2005)

Added functionality which evaluates which columns are missing from each of the files. This is particularly important when DBCX vendors update the metadata files and only one set of the files compared have the new columns.
Added new column details based on enhancements to the VFE metadata during the release of VFE 8 Beta 4.
Added new option to select the Visual FoxExpress SDT metadata for comparison. Previous versions automatically checked for both if you selected SDT and you would get a messagebox that one or the other was not found. They are mutually exclusive choices, but VFE developers have the option of using one or the other. So instead of trying to guess here, we allow the developer ultimate control. The message is still displayed when the files do not exist. To get rid of the message, disable the specific comparison.
Added column number to "Difference in fields in common records" for all metadata comparison.
Added WAIT WINDOWS showing the progress of the comparison and what metadata is being compared.
Changed the directory textboxes to select the text on entry.
Made the form a little taller to fit in the new VFE SDT checkbox and allow more of the ReadMe text to show.
Added error trapping and logging to a text file (MetadataCompareErrors.txt). This information might be handy for the support staff at White Light Computing to figure out the why, when things go wrong.
BUG FIX: If you compare metadata without the nStepValue and nNextValue and a set with this information, the program crashed. This usually occurs when you updated metadata based on VFP 8 and above. This not longer happens.
BUG FIX: If you select VFE and do not check Stonefield Database Toolkit, the comparison prompted a messagebox noting the SDT VFE files were not found even though SDT is not selected. This has been corrected by adding the new VFE SDT checkbox.
BUG FIX: If the metadata in the original set had more fields than the metadata in the current set, a syntax error was thrown. This was fixed.

Version 3.2 Features (June 2005)

Added functionality to account for deleted records in the metadata. Record counts in the output is the total number of records from RECCOUNT() which includes deleted records. The results now include a count of the deleted records in the metadata table in the base result for the table.
Deleted records are shown in the output, but previous versions did not indicate if the data was deleted or live. A check mark at the beginning of the result indicates a live record, and an "X" tells you the record is deleted in the metadata.
If you run the comparison and output to the VFP report or report preview in VFP 9, the new Report Designer functionality is used instead of the legacy Report Designer.

Version 3.1 Features

Made modification to bring DBCX Metadata Compare Utility into the White Light Computing family of tools.

Version 3.0 Features

Runs standalone or in the VFP development environment
Interface to comparison objects for each of the metadata file available (Base DBCX2, Stonefield Database Toolkit, and F1 Technologies Visual FoxExpress). Interface drives the comparison, then provides support for the various output options.
Selection of two directories where the DBCX files reside to select versions for comparison.
External VFP report selection mechanism for open customization of paper output.
Alternative outputs include paper reports, preview to screen, report to file (ASCII option), Windows' ClipBoard to paste to word processor or HTML editor of choice. Other options include a standard VFP table, XML (VFP 7 only), Microsoft Excel, and PDF (if driver is loaded).
External report so developers can change output to their liking.
Browse screen to review comparison output in rawest form.
All settings are written to the Windows Registry and reinstated the next time the tool is run.
Individual business objects for each of the metadata file available (source code option).
International language support via Include constants via .H file (source code option). 
SelfTest() methods for each of the metadata business objects for standalone testing (source code option).

Comparison table documentation:

  • No index, resides in default directory

  • Aliased as CompResults in the comparison tool

  • Structure for table: tabCompareResults.dbf

  • Memo file block size: 64

  • Code Page: 1252
Field Name Type Width Dec
1 iReference Integer 4  
2 cTable Character 40  
3 nRptOrder Numeric 5 2
4 cCompare Character 250  
5 mResults Memo 4  
6 lDeleted Logical 1  
7 tCompleted DateTime 6  
Total     313  
  • iReference: Relative number of comparison record added for each metadata table. Can repeat, not unique.
  • cTable: Natural language description of the table being compared.
  • nRptOrder: Each of the metadata tables are assigned an order for comparison (whole part of number). Each of the various comparisons within each metadata are assigned a sub order (fractional part of the number). This is used to sort the final output so the comparison information is grouped together.
  • cCompare: Natural language description of the comparison performed.
  • mResults: Results of the comparion performed.
  • lDeleted: Indicates if the record in the metadata is deleted.
  • tCompleted: Date and time the comparison was performed.

Trouble with the menu? Try this site map.

Send mail to with questions or comments about this Web site.
Copyright 2004-2020  White Light Computing, Inc.
All Rights Reserved Worldwide
White Light Computing Privacy Statement
Last modified: 07.29.2020