Consultor Eletrônico



Kbase P161989: Deleting temp-table records with a FOR EACH loop generates system error 1422.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   23/03/2010
Status: Unverified

SYMPTOM(s):

SYSTEM ERROR: Index in for recid could not be deleted. (1422)

SYSTEM ERROR: Index <index in temp-table> for recid <recid> could not be deleted. (1422)

NEGATED SYMPTOM(s):

Error does not occur if EMPTY TEMP-TABLE <temp-tablle name> is used to delete temp-table's contents

FACT(s) (Environment):

All Supported Operating Systems
Two temp-tables are used in procedure. Second temp-table's definition (temp-tableB) uses LIKE temp-tableA... phrase to copy temp-tableA's definitions.
Records of second temp-table (temp-tableB) are deleted with a FOR EACH....

FOR EACH temp-tableB:
DELETE temp-tableB.
END.
Progress 9.x
OpenEdge 10.x

FIX:

Possible workarounds:

A) Use EMPTY TEMP-TABLE <temp-table name>. instead of a FOR EACH... to delete the contents of the temp-table.

B) Explicity define the temp-table's schema objects without referencing other temp-table's using the LIKE phrase.