DBCX Metadata Tools
(VFP 9/8/7)

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

Description:

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.

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.

Features:

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.

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.