Hi Doug,
The error seems to be saying that a pointer is pointing to an invalid page.
Actually, the assertion message is suggesting that we were scanning for a row (record) on a particular page where we expected to find it, and didn't - the table page is likely corrupt.
Does a utility exist which would eliminate all pointers to invalid pages?
No. If the database is corrupted, it is best to move to your database recovery procedure from a valid backup. See KBA 1959391 - How can a SQL Anywhere (stand alone) database be restored from a full or incremental backup?
If you do not have a valid database backup but can still start and connect to the corrupted database (and it seems that you can), you can attempt to salvage the data out of the corrupted database tables manually to extract it to a new database (as Jinwoo suggested). See KBA 1959030 - How To Salvage Data When There are Corrupt Pages in the Database. Using -e to skip tables is appropriate and then trying to select the data that is not contained on invalid pages via the KBA instructions is your best option in this case.
Does sap/sybase offer a recovery service?
No, there is no such "recovery service" underneath SAP and any previous mentions of salvages were one-off contracts underneath Sybase Professional Services, and not a technical support service. These contracts are not available at SAP.
This topic was discussed thoroughly on the SQL Anywhere forum ( http://sqlanywhere-forum.sap.com/ ) previously here and here.
---
The prevention for this situation is to have properly validated backups, preferably in multiple backup generations to provide many opportunities for recovery. See: http://wiki.scn.sap.com/wiki/x/3QNcFg
Regards,
Jeff Albion
SAP Active Global Support