Consultor Eletrônico



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.