Consultor Eletrônico



Kbase P98306: Delete of dynamic objects passed as parameter is not postponed
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/1/2004
Status: Unverified

SYMPTOM(s):

Delete of dynamic object is not postponed

Creating object in procedure

Object handle is passed back to calling procedure as output parameter

DELETE OBJECT is called for object handle in called procedure

Object is not available in calling procedure

CAUSE:

This is expected behavior.
When passing a handle as parameter, only a pointer to an object is passed, not the object itself.
In this case, the 4GL does not postpone the delete of the object as it does not recognize the object should be passed back.


FIX:

If possible, use the object-type parameter for the object to be passed back.
This can be done for buffers, temp-tables and (in OpenEdge 10 and later) ProDataSets.

Otherwise, make sure to clean up the object in the calling procedure instead of the called procedure.