Consultor Eletrônico



Kbase P125582: Using an incomplete WHERE clause in a FOR EACH statement does not raise an error condition.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   08/05/2009
Status: Verified

SYMPTOM(s):

Using an incomplete WHERE clause in a FOR EACH statement does not raise an error condition.

A lock option is set as the right-hand-side for an expression in the WHERE clause.

e.g. FOR EACH Employee WHERE EmpNum = NO-LOCK:

FACT(s) (Environment):

OpenEdge 10.x
All Supported Operating Systems

CAUSE:

Bug# OE00156836

CAUSE:

A regression bug in OpenEdge 10.x allows Progress to evaluate the key words EXCLUSIVE-LOCK, SHARE-LOCK, NO-LOCK and NO-WAIT as the integer values 6207, 6208, 6209 and 6090 respectively.

FIX:

Upgrade to 10.1C
Alternately, one workaround is to place the locking option (i.e. EXCLUSIVE-LOCK, SHARE-LOCK or NO-LOCK ) before the WHERE keyword. For example, instead of using:
FOR EACH Customer WHERE Custnum = {&PREPROCESSOR} NO-LOCK.
Use:
FOR EACH Customer NO-LOCK WHERE Custnum = {&PREPROCESSOR}.