Consultor Eletrônico



Kbase P143551: ADM: Code error in adecomm\_mfldlst.p procedure
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/7/2009
Status: Unverified

SYMPTOM(s):

ADM: Code error in adecomm\_mfldlst.p procedure

The code error causes invalid field names when creating an SDO with a buffer having a name containing the name of the DB.

The following 4GL/ABL statement is wrong:
ASSIGN cTTName = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U)
cType = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U).

FACT(s) (Environment):

The correct version of the above statement is:
ASSIGN cTTName = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U)
cType = ENTRY(3, ENTRY(iNumTT, p_TT), "|":U).
All Supported Operating Systems
Progress 9.x
OpenEdge 10.1C
OpenEdge 10.2A

CAUSE:

Bug# OE00182845

CAUSE:

The error is either a logic error or simply a typo that has been there since 9.x. The error did not surface using a database name qualified buffer names is rare. The code is wrong because it references the cType as the second element of the p_TT list even though it is actually the third element of that list.

FIX:

Correct the offending statement by its corrected version. Namely, replace the statement:
ASSIGN cTTName = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U)
cType = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U).
with the statement:
ASSIGN cTTName = ENTRY(2, ENTRY(iNumTT, p_TT), "|":U)
cType = ENTRY(3, ENTRY(iNumTT, p_TT), "|":U).