>I have only free tables.
SDT works on free tables.
>Also, validate database does not fix corrupted cdx files.
>
No but it identifies lost or damaged headers, which can allow you to trigger code to do the necessary work. It also identifies and recovers from some data errors that are often mis-diagnosed as index file problems.
>Also in my knowledge, SDT does not fix corrupted cdx files automatically.
>I must manually dedect cdx file corruption and use INDEX ON or SDT - no difference.
>Manual cdx corruption dedection requires opening a dbf file. However, opending dbf file causes c5 immediataly. So nothing helps.
You have to open the file in order to know that they are not consistent. SDT does detect at least some classes of inconsistency, and does a considerable amount of work to handle errors. It's better than the native capabilities, and far better than what you could cobble up on your own in a relatively short period of time, so I consider it to be cost-effective. Perhaps you should address something to make your platform more stable rather than trying to detect and correct errors; the cost in time and lost productrivity from recovery, even succesful recovery, is large compared to the cost of preventing the problem in the first place.