Consultor Eletrônico



Kbase P24035: Error (687) when explicitly passing buffer parameters to an external procedure (.p)
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   19/02/2007
Status: Unverified

SYMPTOM(s):

Getting an error when compiling a program

** Shared buffers cannot be declared for nonshared workfiles. (687)

Attempting to compile a program that takes a static buffer as input parameter for a temp-table. e.g.:

DEFINE TEMP-TABLE tt NO-UNDO
FIELD f1 AS CHARACTER FORMAT "x(20)".

DEFINE PARAMETER BUFFER btt FOR tt.
IF AVAILABLE btt THEN
DISPLAY btt.f1.

CAUSE:

This is expected behavior.

Passing a buffer parameter for a temp-table to the top level of an external procedure was never supported, but the error message raised is confusing.

FIX:

Use a persistent procedure to accomplish the desired behavior.

OpenEdge 10.1B and later releases provide a better error message.