Board index » delphi » How to repair an Index out of date error???

How to repair an Index out of date error???

Hello,

Sometimes (I don't really know why). I get these strange errors: Index out
of date!

Is there a way to check an index during application startup, and rebuild
them if there is something wrong?

Please let me know.

Thanks,
Machiel

 

Re:How to repair an Index out of date error???


Quote
In article <01bb6352.c1c1eb00$288c0...@bis.worldonline.nl> "Machiel" <ampt...@worldonline.nl> writes:
>Sometimes (I don't really know why). I get these strange errors: Index out
>of date!
>Is there a way to check an index during application startup, and rebuild
>them if there is something wrong?
>Please let me know.

Indexes can become out of date for three reasons:  (1) table damage; or (2)
the index is not marked as "maintained" when the table is created; or (3) an
application crash with data that hadn't been written out to disk.

If the table is undamaged, then the "DbiRegenIndexes" routine can rebuild all
of the indexes on a table.  

If the table is damaged, the Table Repair Utility or its equivalent will be
required to put the thing right again.

------------------------------
Mike Robinson; Sundial Services, Scottsdale AZ  (602) 946-8259; fax 874-2068
mi...@sundialservices.com
----
"$#^#!!  That's the third time this week!   Well, I guess you gotta get in the
car and go fix their tables, right?"  ... right? ...
http://www.azwebproducts.com/computer/sundial/sundial1.htm

Re:How to repair an Index out of date error???


Quote
In article <tsorense.7.053AF...@helix.net> tsore...@helix.net (T. Sorensen) writes:
>>If the table is damaged, the Table Repair Utility or its equivalent will be
>>required to put the thing right again.
>DbiRegenIndexes only solves some of the possible problems...
>One alternative is to test each table by opening it and switch to each index
>with a try-except block. If a dbEngineError is generated you could repair the
>table on the fly using (a) an empty table with an identical structure - store
>one to match each of tables - delete the indexes from the damaged table- then
>try to move the data into the backup structure (if possible)- then copy back
>over the damaged table (b) do the same as in a, but use a stored structure
>information table rather than multple backup tables and then create tables at
>runtime using this info (c) call the tutility.dll (comes with Paradox for
>Windows) from program code (unfortunately, good documentation is difficult to
>find).

Those who might be interested in one commercial product now available to do
this -- one which we developed for our own use, initially -- may wish to
inquire about "ChimneySweep" at:

        http://www.azwebproducts.com/computer/sundial/sundial1.htm
or:     i...@sundialservices.com

This product is especially targeted at companies and consultancies who wish
to provide table-repair, "fix idapi-in-use" etc. and detailed technical
reporting of problems (for faxing back to you), using a turnkey "push this
button and wait" ... "I'd rather the customer doesn't know the master
passwords, thankye!" ... approach.  It's a fully programmable tool.  I'll be
happy to address any questions via direct e-mail; send flames to the same
place.

On the other hand:  Those who want to introduce table-repair directly into
their applications may wish to check out the various table-repair components
now available shareware and freeware, and also the most recent issue of
Paradox Informant magazine, where TUTILITY in its various new versions is
getting a lot of airplay right now.  I'm sorry that I don't have a direct URL
for the table-repair components but I expect that the Delphi Super Page etc.
would be a logical place to look; also WebCrawler and the like.

And the TUTILITY.DLL documentation... to say it's "difficult" and that the DLL
itself is "finicky" is an understatement of the century.  But better than
nothing.

-Mike Robinson; Sundial Services, Scottsdale AZ  (602) 946-8259; fax 874-2068
 mi...@sundialservices.com

Other Threads