Error 1422 - Index cannot delete...

Storzum

Member
Hello,

on occasion it happens, that some of our customers get the error
1422 (SYSTEM ERROR: Index in for recid could not be deleted.).

This happens probably when they delete a record.

When I search the recid shown in the error message with:
find Tabelle1 where recid(Tabelle1) = 123123123
I was able to find the record.

I let me show the values from this record and when I try to
search this record by the values
( for each Tabelle1 where Tabelle1.rechnr = "asfaf" or
find Tabelle1 where Tabelle1.rechnr = "asfaf")
I find no records?!

This curious records stay there even though we run the idxfix-utility.


But now I describe the situation where I assume the error 1422 was produced:

We have a SmartWindow where a table was shown in a Browse.
This table is processed with two buffer when some records shall be deletet:
Code:
FOR EACH Buffer1 WHERE Buffer1.series = 0 EXCLUSIVE-LOCK:

    FOR EACH Buffer2 WHERE Buffer2.series > 0 EXCLUSIVE-LOCK:
        DELETE Buffer2.
    END.

    DELETE Buffer1.
END.
The nested deletion is needed because of many plausibility-checks in the Buffer1 - loop.

Puh.

I hope this wasn`t too inapprenshible and someone can give me a hint to the right direction.

We use Progress 9.1d on Windows-XP.

Thanks ahead.
 

Casper

ProgressTalk.com Moderator
Staff member
This curious records stay there even though we run the idxfix-utility.
[/quote

You mean that after you delete the recid and its index entries with proutil idxfix, the record still exists???

I never heard of that, not even an error that the utility failed?

Because otherwise you could dump the record by exporting the record found by recid, delete the record with idxfix (option 6) and create the record again (if it's not a duplicate key issue...).

regards,

Casper.
 
Top