Consultor Eletrônico



Kbase P107850: Error 10481 when compiling program with RECID/ROWID function in WHERE clause in a FOR EACH loop.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/11/2009
Status: Verified

SYMPTOM(s):

Error 10481 when compiling program with RECID/ROWID function in WHERE clause in a FOR EACH loop.

The 4GL statement to be executed requires a RECID. No RECID was selected for the table. (10481)

FACT(s) (Environment):

Table does not have the progress_recid field defined.
Table has a multiple part index that has been selected as ROWID index.
Table had non-integer field in index that has been selected as ROWID index.
ODBC DataServer
Progress 9.1x
OpenEdge 10.x
Windows

CAUSE:

Bug# OE00119190

FIX:

Upgrade to Service Pack OE10.0B05 or Service Pack OE10.1A01 or later release.

If unable to upgrade at this time, the workaround this issue is to remove the RECID/ROWID comparison from the WHERE clause and put it as a separate line of code.

Here is an example of how to workaround this issue:

ORIGINAL CODE:
FOR EACH <table> WHERE <field> = <field>
AND ROWID(<table>) <> <ROWID variable>:

WORKAROUND:
FOR EACH <table> WHERE <field> = <field>:

IF ROWID(<table>) = <ROWID variable> THEN NEXT.