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.