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