[SQL Anywhere 184.108.40.20623 64-bit]
I ran dbvalid against an offline database using this command:
"%SQLANY12%\bin64\dbvalid.exe" -c "uid=dba;pwd=***;dbf=mydatabase.db;eng=validate;start=dbeng12 -r -ch 500m" -o dbvalid-log.txt
When it had completed the last line of the log stated '2 errors reported' and checking through the rest of the log I could see that for 2 tables it contained messages of the form:
VALIDATE TABLE "myowner"."mytable" SQL error (-300) -- Run time SQL error -- Validation of table "mytable" has failed
Note that there are 5 empty lines between the two messages (it doesn't quite display properly above). I don't know if it's relevant but it seems a little odd.
In my experience of earlier versions of SQL Anywhere (8,9) when dbvalid found some kind of corruption in a table the messages it produced were a little more informative and could sometimes allow the problem to be fixed by simply dropping and recreating an index that it suggested was corrupt. I don't think I've seen a 'Run time SQL' error before and it doesn't give me much to go on.
Does this simply indicate that the table is corrupt in such a way that dbvalid can't give any more details or are could it be a problem with dbvalid itself?
V12 uses a new and much faster algorithm for validating databases but the new method does have as much information available to it as the old algorithm did. Suppose, for example, you have two files that are supposed to be identical but you checksum them (with MD5, for example) and get two different numbers. You know they are different but you don't know where in the file they are different or which one is "right". That's similar to what the new algorithm does.
Now, it appears that SA no longer reports what index we had a problem with when you use "VALIDATE TABLE" and the checksum for a table doesn't match an index -- it just reports that the table has problems. Strictly speaking, as noted above it is impossible to know if the corruption is in the index or the table. It would be more useful to report the index name so I'll add an enhancement request to report it. Meanwhile, you could use VALIDATE INDEX on each index to find what index has a problem.