| Here is a detailed explaination of the problem. The bug # 462131
references this note.
--------------------------------------------------------------------------------
The applicaion uses DECforms and Rdb and CDD.
The applicaion works on these two systems:
VAX: OpenVMS 6.1, DECForms 2.0-5, CDD 5.3, RDB 6.1
AXP: OpenVMS 6.2, DECForms 2.1B, CDD 5.3, Rdb 6.1-0
It fails on this system:
AXP: OpenVMS 7.1, DECForms 2.1B, CDD 7.0, Rdb 6.1-1
- it also failed on this system with CDD 5.3.
The DECForms code copies the forms from CDD using both:
copy ... from dictionary
and also
copy cdd$top.record. ...
On the system that fails, what happens is it successfully finds
the first form from CDD using the "copy ... from dictionary"
but fails to fine the rest of the forms giving this error:
%FORMS-E-CDDEXTRACT, error extracting record ... from CDD/Plus
If he switches the order of the copies so that it copies what was
his second form first, then it copies this new first form and gets
the above error on the subsequent copies.
He had 30+ copy statments using "copy ... from dictionary" so the
compile exceeded the error count and aborted before trying the
"copy cdd$top.record..." copies, so he does not know if these
would have worked.
When this was failing, he had this definition:
define/sys/exec cdd$default cdd$top.record
When he changed this to be
define/sys/exec cdd$default sys$common:[cddpus]record
then all of the "copy ... from dictionary" succeeded on the compile.
And the first "copy cdd$top.record..." succeeded. But the
rest of the "copy cdd$top.record..." failed with this
%FORMS-E-CDDEXTRACT... error.
The system does not have a CDD$TOP logical defined. Also, the repository
is a duplicate of the one on the Alpha VMS 6.2 system, which works.
Here is a workaround that the customer has found:
He redefined cdd$default to be
$ define/sys/exec cdd$default _cdd$top.records
instead of just "cdd$top.records" and then changed his copies that used
"cdd$top.records..."
to be
"cdd$compatibility.records..."
then both the
copy ... from dictionary
and the
copy cdd$compatibility.records...
worked fine and the application compiles.
The application has many forms so that this workaround would be a major
effort to implement.
Here is more information sent in by the customer:
Problem report translating DECForms using CDD running on ALPHA VMS V7.1
Can't compile ACTION.IFDL using ALPHA VMS V7.1
FORMS V2.1B
CDD V7.0 or V5.3
RDB V6.1-1
Build procedure defines CDD$DEFAULT to be CDD$TOP.RECORDS
CDD$COMPATIBILITY SYS$COMMON:[CDDPLUS]
CDD$DICTIONARY SYS$COMMON:[SYSEXE] ! this is where the CDD.DIC file is
! old cdd way of storing records
Trying to compile the form below the will produce an error on the
second copy of COPY CGSA_CODES_REC FROM DICTIONARY
6 END COPY
%FORMS-E-CDDEXTRACT, error extracting record CGSA_CODES_REC from CDD/Plus.
If you reverse the records then the error is on the
COPY AGENT_CODES_REC FROM DICTIONARY
We have no problems compiling on the a VAX VMS V6.1
FORMS V2.0-5
CDD V5.3
RDB V6.0-15
Also I have tried to compile this on another ALPHA system VMS V6.2
with no problems. FORMS 2.1B or V1.4-?
CDD v5.3
RDB V6.1
TEST.IFDL
--------------------------------------------------------------------------------
Form TEST
Form Data /* rms/cdd record definitions */
COPY AGENT_CODES_REC FROM DICTIONARY
END COPY
COPY CGSA_CODES_REC FROM DICTIONARY
END COPY
End Data
Layout VT_LAYOUT
Device
Terminal
Type %VT100
End Device
Size 24 Lines by 80 Columns
Viewport TEMP
Lines 1 Through 24
Columns 1 Through 80
End Viewport
Panel NEW_ONE
Viewport TEMP
End Panel
End Layout
End Form
--------------------------------------------------------------------------------
|