I'm getting some very odd behaviour in a 4GL application I am working
on. I have a frame that is causing a system fatal abort. The problem is
that I cannot determine any real season for this. I put "message"
statements in the code to try to determine where it was going wrong.
They all execute just fine. Based on that finding, it almost looks like
the OSQ code is failing on the "}" at the end of the activation block,
but I don't see how that could be happening.
Ingres 6.4/01 (vax.vms/01)
The 4GL code:
This is the code segment where it actually blows up:
(frskey23 is defined as the "Select" key on VT200 keyboards)
'S.O.', key frskey23 =
clear field 'imsg';
imsg := callframe signoff(signoff.workordernum = :workordernum,
signoff.wo_sequence = :wo_sequence);
if imsg = -1
msg := 'SIGNOFF aborted because user CANCELED action';
elseif imsg = 0 then
clear field all;
record_pointer = -1;
elseif imsg != 0 then
message 'Unable to SIGNOFF Work Order' + X'0D' +
'Please report the error NOW' with style = popup;
msg := 'Work Order could NOT be signed off';
All fields referenced are simple fields in the VIFRED form associated
with the frames. IMSG is an i4 field and MSG is quite large enough to
contain the text stirngs being loaded there. WORKORDERNUM and
WO_SEQUENCE are char(12) and i4, respectively, in both forms.
This is the pertinent code in the frame SIGNOFF:
'Exit', key frskey3 =
SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual address=001FAA00,
Please contact your Technical Support representative.
%SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual address=001FAA00,