Kbase P132426: 4GL/ABL: Error (8826) & (5367) invoking BUFFER-COPY() method with empty except-list.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  6/19/2008 |
|
Status: Unverified
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.x
SYMPTOM(s):
4GL/ABL: Error (8826) & (5367) invoking BUFFER-COPY() method with empty except-list
Field <field-name> from <file-name> record (recid <RECID>) was missing from FIELDS phrase. (8826)
Couldn't extract field '<field>' from source in a BUFFER-COPY statement. (5367)
Field Country from Customer record (recid 97) was missing from FIELDS phrase. (8826)
Couldn't extract field 'Name>' from source in a BUFFER-COPY statement. (5367)
Executing the following code:
DEFINE VARIABLE hTempTableBufferHandle AS HANDLE NO-UNDO.
DEFINE VARIABLE hTableBufferHandle AS HANDLE NO-UNDO.
DEFINE TEMP-TABLE ttCustomer NO-UNDO
FIELD CustNum LIKE Customer.CustNum
FIELD Country LIKE Customer.Country
FIELD Balance LIKE Customer.Balance.
CREATE BUFFER hTempTableBufferHandle FOR TABLE "ttCustomer".
ASSIGN
hTableBufferHandle = BUFFER Customer:HANDLE
hTempTableBufferHandle = BUFFER ttCustomer:HANDLE.
FOR EACH Customer FIELDS (Customer.CustNum Customer.Balance) WHERE Customer.CustNum < 5 NO-LOCK:
CREATE ttCustomer.
hTempTableBufferHandle:BUFFER-COPY(hTableBufferHandle,"", "Customer.CustNum,ttCustomer.CustNum,Customer.Balance,ttCustomer.Balance").
END.
FOR EACH ttCustomer:
DISPLAY ttCustomer.
END.
CAUSE:
All target buffer fields that are missing from the the copy pairs-list of the BUFFER-COPY() method must be explicitly listed in the except list of the BUFFER-COPY() method. In the above sample code, the field ttCustomer.Country is missing from the copy pairs-list and is not listed in the except list of the BUFFER-COPY() method as required.
FIX:
Include all target buffer fields that are missing from the the copy pairs-list of the BUFFER-COPY() method in the except list of the BUFFER-COPY() method. For example, to fix the above code, add the missing "Country" field to the except list of the BUFFER-COPY() method. That is change the statement:
hTempTableBufferHandle:BUFFER-COPY(hTableBufferHandle,"", "Customer.CustNum,ttCustomer.CustNum,Customer.Balance,ttCustomer.Balance").
To:
hTempTableBufferHandle:BUFFER-COPY(hTableBufferHandle,"Country", "Customer.CustNum,ttCustomer.CustNum,Customer.Balance,ttCustomer.Balance").