[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | Oracle CDD/Repository nce |
Notice: | Current versions are V7.0-01 and V6.1-03 eld Test 3 |
Moderator: | 8292::PJACOB N |
|
Created: | Thu Jan 21 1993 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 1094 |
Total number of notes: | 4913 |
1064.0. "ALIGN pb with SQL$PRE+FORTRAN+INCLUDE FROM DICTIONARY" by 8292::PJACOB (Patrick [email protected]) Tue Mar 11 1997 15:06
CDD/R 6.1-03 Rdb 6.1-1 FORTRAN 7.1 VMS 6.2
Is there a problem with SQL$PRE/ALIGNMENT=RECORDS=NATURAL and EXEC SQL INCLUDE
FROM DICTIONARY clause with FORTRAN 7.1 ?
A customer of mine is trying to migrate from VAX to Alpha. His programs no
longer works on Alpha. He sent me everything necessary to reproduce the problem:
CDD definitions + FORTRAN source program containing the EXEC SQL INCLUDE FROM
DICTIONARY + C source program containing the same EXEC SQL INCLUDE FROM
DICTIONARY . The C program is called by the FORTRAN program . Under the
debugger he determined that he did not retrieve the good value of the record
passed from the FORTRAN program to the C program. However I was not able to
reproduce this symptom because I was running FORTRAN V6.3-711 and the customer
was running FORTRAN V7.1-107 .
Digital, connected on the customer site, noted 2 problems :
- precompiling with /ALIGNMENT=RECORDS=NATURAL/CROSS_REFERENCE should prevent
the "FORT-W-FLDMISALN, Record contains one or more misaligned fields" message
to occur. This was not the case.
- when we precompile /ALIGN=RECO=NATURAL/CROSS, which is the default, NJOUR
should be at offset 8 but with FORTRAN 7.1 we see it at the offset 6 which is
wrong:
00000000 CDEV REFFINS0 CHAR 3 8 19
00000003 CINSTR REFFINS0 CHAR 3 9
0000000A DSTK REFFINS0 STRC 8 11
00000012 HSTK REFFINS0 I*4 4 14
00000006 NJOUR REFFINS0 I*4 4 10 20
Thus the question became: Why Oracle does not take care of our compilation
directives.
I verified on my system with FORTRAN V6.3-711. The program worked correctly
with Rdb 6.0-15 and 6.1-1. FLDMISALN is not generated with appropriate flag.
The alignment was correct with natural ( and default ) alignment:
00000000 CDEV REFFINS0 CHAR 3 8 19
00000003 CINSTR REFFINS0 CHAR 3 9
0000000C DSTK REFFINS0 STRC 8 11
00000014 HSTK REFFINS0 I*4 4 14
00000008 NJOUR REFFINS0 I*4 4 10 20
I received the FORTRAN V7.1 kit and once installed I could reproduce the
problem with both Rdb 6.0-15 and 6.1-1 ( CDD 6.1-03 ).
Thus, is there something broken with FORTRAN 7.1 ( or > 6.3 )? How can we make
work correctly alignment ? How can we make work correctly the customer program?
Is it a CDD/Repository problem or an Rdb problem?
Patrick
T.R | Title | User | Personal Name | Date | Lines |
---|
1064.1 | bug # 474245 | 8292::PJACOB | Patrick [email protected] | Thu Apr 03 1997 09:19 | 3 |
| bug 474245 submitted
Patrick
|
1064.2 | need to specify ALIGNED ON ... BOUNDARY clause | 8292::PJACOB | Patrick [email protected] | Wed Jun 04 1997 13:13 | 26 |
| To let you know the answer of the bug ...
When migrating from VAX to Alpha you may need to add alignment clause
in the record definition. Adding CDEC$ options did not fix the problem.
This was not necessary with FORTRAN 6.3-711; it became necessary once I
upgraded to FORTRAN 7.1-107.
This will certainly annoy a lot of customers ....
Patrick.
CDO definitions used in the EXEC SQL INCLUDE FROM DICTIONARY
------------------------------------------------------------
define field field_c.cdev datatype text size 3.
define field field_c.cinstr datatype text size 3.
define field field_n.njour datatype signed longword.
define field field_l.linstr datatype text size 30.
define field field_d.dstk datatype date .
define field field_h.hstk datatype signed longword .
define record record.reffins0 .
field_c.cdev.
field_c.cinstr.
field_n.njour align longword.
! ^^^^^^^^^^^^^^ clause added for Alpha
field_d.dstk.
field_h.hstk.
end record.
|