KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q135112: How to Use GENDBC to Create Utility that Recreates Complex CDX

Article: Q135112
Product(s): Microsoft FoxPro
Version(s): 3.00
Operating System(s): 
Keyword(s): kbcode
Last Modified: 21-AUG-1999

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual FoxPro for Windows, version 3.0 
-------------------------------------------------------------------------------

SUMMARY
=======

Gendbc.prg is a program file that is included with Visual FoxPro and is used to
generate code for the purpose of rebuilding a database container (.DBC) file. It
is installed by default in the VFP30\Tools\Gendbc directory. Once this program
is run with your database open, it will generate code that will recreate the
.DBC file, any tables and indexes, and any persistent relations that exist in
the database. If any changes are made to the structure of your database, you
must rerun Gendbc.prg for the changes to be reflected in the code generated by
it.

NOTE: The resulting generated program is primarily used in case your database
container becomes corrupt. It will rebuild the structure; however, lost data is
irrecoverable. It is a good idea to back up your data on a regular basis. For
more information on Gendbc.prg and its use, please see the online documentation
or help file.

MORE INFORMATION
================

While its main purpose is to create code for rebuilding a database (.DBC) file,
Gendbc.prg can also be used for a variety of other purposes. One such purpose
would be for creating code for rebuilding indexes that are attached to the
tables contained in the database.

The following code is an excerpt from Testdata.prg, which is the program file
generated by GENDBC with the Testdata.dbc in use. Testdata.dbc is installed by
default in the VFP30\Samples\Data directory.

     ***** Create each index for CUSTOMER *****
     INDEX ON COMPANY TAG COMPANY
     INDEX ON CONTACT TAG CONTACT
     INDEX ON POSTALCODE TAG POSTALCODE
     ALTER TABLE 'CUSTOMER' ADD PRIMARY KEY CUST_ID TAG CUST_ID

     ***** Create each index for PRODUCTS *****
     ALTER TABLE 'PRODUCTS' ADD PRIMARY KEY PRODUCT_ID TAG PRODUCT_ID

     ***** Create each index for ORDITEMS *****
     INDEX ON ORDER_ID+STR(LINE_NO,5,0) TAG ORDER_ID
     INDEX ON PRODUCT_ID TAG PRODUCT_ID

     ***** Create each index for ORDERS *****
     INDEX ON CUST_ID TAG CUST_ID
     INDEX ON EMP_ID TAG EMP_ID
     ALTER TABLE 'ORDERS' ADD PRIMARY KEY ORDER_ID TAG ORDER_ID

     ***** Create each index for EMPLOYEE *****
     ALTER TABLE 'EMPLOYEE' ADD PRIMARY KEY EMP_ID TAG EMP_ID

These segments of code can be placed into a separate program file, procedure,
function, stored procedure, or method and can be called at any time to rebuild
the indexes of the tables that are in the Testdata.dbc database. You can execute
Gendbc.prg with your database open and it will generate similar code for
recreating your database and any indexes attached to the tables contained in it.

Additional query words: VFoxWin Utilities Tools CDX DBC

======================================================================
Keywords          : kbcode 
Technology        : kbVFPsearch kbAudDeveloper kbVFP300
Version           : 3.00

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.