Consultor Eletrônico



Kbase P176407: Program gets error 293 for DataSet FILL callback method located in class
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/29/2010
Status: Unverified

SYMPTOM(s):

Program gets error 293 for DataSet FILL callback method located in class

ABL program instantiates new instance of class then calls method passing DataSet to method BY-REFERENCE

Method in class establishes callback for buffer in DataSet

Everything works the first time the method in the class is called

The class instance is then deleted using DELETE OBJECT

ABL program that creates another new instance of the same class and repeats the same steps passing the same DataSet

The method call to the second instance of the class fails with error 293 on the callback

** "<file-name>" was not found. (293)

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.2x
OpenEdge Category: Language (4GL/ABL)

CAUSE:

The cause of the problem is the passing of the DataSet BY-REFERENCE. This passes a pointer to the DataSet in the ABL program so the first call to the method establishes the callbacks into the first instance of the class. The second call into the method tries to set new callbacks but they are ignored. Consequently when the DataSet FILL() is invoked the callback is trying to call back into the instance of the class that has been deleted and error 293 is returned.

FIX:

Do not pass the DataSet BY-REFERENCE