Kbase P166328: 4GL/ABL: 'The target of the ENTRY statement must be a field...' error compiling an ENTRY statement
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/20/2010 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL: 'The target of the ENTRY statement must be a field...' error compiling an ENTRY statement
The target of the ENTRY statement must be a field or an unqualified reference to a data member or variable
ENTRY statement does not accept buffer fields as argument
ENTRY(1, hCustBuf::Comment , "|":U) = hBuf::Comment.
FACT(s) (Environment):
Passing a buffer field value to the ENTRY statement
Same code compiles error free under OpenEdge 10.1C, OpenEdge 10.2A and OpenEdge 10.2B
OpenEdge Category: Language (4GL/ABL)
All Supported Operating Systems
CHANGE:
Upgraded to 10.2B01
CAUSE:
This is an expected behavior.
FIX:
The compiler error we are seeing is the expected behavior and is part of bug# OE00193780 fix which went in 102B01. The ENTRY statement should not compile for buffer field assignment. Although the 4GL code compiled successfully prior to bug# OE00193780 fix, the buffer field value never changed; as you can see from the following code, before and after value of bh::Comments remained the same even though ENTRY(1, bh::Comments , " ":U) = "Com". run successfuly.
DEFINE VARIABLE ix AS INTEGER NO-UNDO.
DEFINE VARIABLE qh AS HANDLE NO-UNDO.
DEFINE VARIABLE bh AS HANDLE NO-UNDO.
DEFINE VARIABLE fh AS HANDLE NO-UNDO EXTENT 10.
CREATE BUFFER bh FOR TABLE "Customer".
CREATE QUERY qh.
qh:SET-BUFFERS(bh).
qh:QUERY-PREPARE("FOR EACH Customer").
qh:QUERY-OPEN().
qh:GET-FIRST().
DISPLAY bh:NAME.
MESSAGE "BEFORE ENTRY::" bh::Comments VIEW-AS ALERT-BOX.
ENTRY(1, bh::Comments , " ":U) = "Com".
MESSAGE "AFTER ENTRY::" bh::Comments VIEW-AS ALERT-BOX.
qh:QUERY-CLOSE().
bh:BUFFER-RELEASE().
DELETE OBJECT bh.
DELETE OBJECT qh.None at this time.