Kbase P7579: How to troubleshoot Scan past last field testrec failed on recid/dbkey
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/05/2009 |
|
Status: Verified
GOAL:
How to troubleshoot Scan past last field testrec failed on recid/dbkey
GOAL:
ERROR: Scan past last field
GOAL:
ERROR: testrec failed on recid/dbkey:
FACT(s) (Environment):
All Supported Operating Systems
Progress/OpenEdge Product Family
FIX:
First, Use dbrpr (or dbtool beginning in 9.1D06) to determine if there is more than one record damaged.
If there is more than one record damaged it might be advisable to restore a copy of the database into another location to determine if the corruption exists in the backup as well or if the backup of the database might be safer to revert to.
In some cases it may be possible to review most of the fields of the record with 4GL / ABL code similar to the following logic:
for each <tablename> where recid(<tablename>) = <recid>.
display
<field1>
<field2>
etc.....
.
end.
In this example you must use the actual field names in place of <field(x)>.
In this example you must use the actual table name in place of <tablename>.
In this example you must use the actual recid in place of <recid>.
Keep running this and adding one more field for the record until it fails.
If it does not fail then check that you supplied the correct recid number.
Second, To remove the bad record use idxfix
proutil <dbname> -C idxfix
Choose option 6 which is to Delete one record and it's index entries.
It will ask for the DBKEY supply the recid of the bad record
If you are using version 9 you must also supply the area number that that table is resident in.