>I have heard that it is not wise to pack a table on a production system, especially when you're dealing with a fairly large table. ( 100,000+ ). Instead you do something like:
>
>PARAMETERS tcDbc, tcTableName
>USE (tcTableName)
>COPY TO TEMP DATABASE (tcDbc) FOR NOT DELETED()
>RENAME TEMP.DBF TO &tcTableName..DBF
>REINDEX
>* Or recreate the indexes one by one from a data dictionary
>
>1. Is the correct syntax.
>
>2. If its correct, is there a problem in VFP 5, where the copy to only copies the first 10 characters of field names.
No problem I've ever had. I see a couple things, though:
1) Add WITH CDX to the COPY or you'll lose the indexes
2) You'll lose some other DB table properties using your technique, if you have them.
3) You can use SET DELE ON instead of the FOR filter.
4) the RENAME may be confusing the DBC by putting the new table in a different path, perhaps that's why the 10-char names. Is that possible?
5) If something goes wrong with this method at runtime , you can be in hot water :) You might want to COPY TO a backup name also, in case...
The Anonymous Bureaucrat,
and frankly, quite content not to be
a member of either major US political party.