I've got two problems running a reindex/pack routine with Stonefield.
1. If the pack tries to run on a computer without enough free disk space (one of our tables is over 140MB) I get an error message and after I acknowledge it the program continues to the next table.
However, all the indexes have been removed from the DBC. I looked at the code, and it appears to (in a condensed list)
a) Store a list of indexes
b) Remove the indexes from the DBC
c) Remove the index byte from the DBF and delete the CDX
d) If packing check for sufficient disk space
e) Pack
f) Rebuild each Index in turn (which updates the DBC)
If (d) fails, the program loops to the next table, skipping steps (e) & (f), and causing programs to crash madly as they try to find non-existant indexes when we go back on line.
Obvious solution: Check for disk space before starting. Second solution: Use SDT (on another machine with plenty of disk space) to update the table, restoring the indexes.
However, I keep thinking I've got it set up wrong. Surely the DBC should be re-built if the Pack doesn't run? Or at least a major error message describing the problem? The way it is now, we hesitate to allow users to do their weekly/monthly maintenance.
2. This one's much less important. If there's no index the DBF doesn't pack. There is an easy work around - add an index on a small field - but again I'm wondering if I'm missing a switch.
It's a plain vanilla program, just a login form and a menu calling the SDT Reindex program/form.
TIA
Barbara