Hi, emucode
Assuming you are using NTX's, TonHu's comments are very appropriate. It is entirely possible the EOF characters are not the only garbage data in the database, and I have found the combination of large database size and bad data often causes .NTX files to corrupt, especially when new records are added with indexes open.
However, with clipper S87 your choices are limited. You might try:
- Running in a DOS machine or a DOS box under windows with maximum base memory 620K or more
- if the workstation and/or the server are NT class windows be sure to disable opportunistic locking (OPLOCKS)
- Disable expanded memory (set clipper=f50;e0)
- Write a program which passed the .dbf and scans all fields used in indexes for valid data (no high-order ascii characters, numerics & dates valid).
- write a little program which does nothing but build the indexes. This minimizes code size and maximize dos memory.
- Use Blinker as your linker
- use INDEX ON, not REINDEX
That should enable you to build clean indexes. I maintain an old S87 system which has a cust history file of over 2 million records (around 1 gig) with 3 indexes this way. But it means that any program which adds many records to the file may have to do so with indexes disabled and rebuild afterwards, using the special purpose index program.
Jock