Consultor Eletrônico



Kbase P138271: Session crashes when accessing field from buffer via an Object instance in OpenEdge 10.2A
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/5/2008
Status: Unverified

SYMPTOM(s):

Session crashes when accessing field from buffer via an Object instance in OpenEdge 10.2A

In code that instantiates class, attempts to use buffer handle supplied by the Property to reference to obtain the value of a field for use in a query. For example:

FIND FIRST Customer WHERE Customer.Name = myContainer:Buf:BUFFER-FIELD(1):STRING-VALUE.

PROWIN32.EXE crashes when evaluating this statement

Stack trace from prow32.dll reads

_otmNumMethVers
_smGetOLudf
_smoo4glelemref
_smisgb

Session does not crash if the statement is used on its own i.e.

MESSAGE myContainer:Buf:BUFFER-FIELD(1):STRING-VALUE.

OpenEdge 10.1C02 session does not crash but generates errors 12927 and 223

Could not locate element '' in class ''. (12927)

Could not locate element 'Buffer-field' in class 'widget-handle'. (12927)

** Incompatible data types in expression or assignment. (223)

FACT(s) (Environment):

Class creates and populates a Temp-Table
Class has a Public Property that returns the buffer handle of the Temp-Table
OpenEdge 10.1C
OpenEdge 10.2A
Windows

CAUSE:

Bug# OE00178107

FIX:

Assign the value of the expression to a variable prior to using it in the query, for example:

DEFINE VARIABLE a AS CHARACTER NO-UNDO.
a = myContainer.Buf.BUFFER-FIELD(1):STRING-VALUE.

FOR EACH customer WHERE customer.name = a:
...
END.