I am attempting to test a new routine that retrieves file specifications in BASIC (using a combination of the STATUS xx FROM fv statement and the FILEINFO() function).
Naturally I have tested against variations of the hashed file types (types 2-18).
It attempting to test dynamic files I have found that I cannot create a type-30 file that uses the SEQ.NUM algorithm.
>.L RELLEVEL
RELLEVEL
0001 X
0002 11.3.5
0003 PICK
0004 PICK.FORMAT
0005 11.3.5
>
>CREATE.FILE TEST.DYNAMIC_4 3 DYNAMIC SEQ.NUM
Creating file "TEST.DYNAMIC_4" as Type 30.
Creating file "D_TEST.DYNAMIC_4" as Type 18, Modulo 3, Separation 1.
Added "@ID", the default record for RetrieVe, to "D_TEST.DYNAMIC_4".
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 64BIT Revision 12
NLS Character Set Mapping .. NONE
Hashing Algorithm .......... GENERAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1619 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
>
Is there some fancy command-line secret handshake that is needed to create such a file, or is it just no longer possible to use the SEQ.NUM algorithm?
------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------
From an Ideal Account
>CREATE.FILE TESTDYN 30 3 1 SEQ.NUM
Creating file "TESTDYN" as Type 30.
Creating file "D_TESTDYN" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_TESTDYN".
>ANALYZE.FILE TESTDYN
File name .................. TESTDYN
Pathname ................... TESTDYN
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... SEQUENTIAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1628 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
>
If not in an ideal account ... from 11.3.2 try using ICREATE.FILE and the syntax above
>.L RELLEVEL
RELLEVEL
001 X
002 11.3.5
003 PICK
004 PICK.FORMAT
005 11.3.5
>ICREATE.FILE TESTDYN 30 3 1 SEQ.NUM
Creating file "TESTDYN" as Type 30.
Creating file "D_TESTDYN" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_TESTDYN".
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
I am attempting to test a new routine that retrieves file specifications in BASIC (using a combination of the STATUS xx FROM fv statement and the FILEINFO() function).
Naturally I have tested against variations of the hashed file types (types 2-18).
It attempting to test dynamic files I have found that I cannot create a type-30 file that uses the SEQ.NUM algorithm.
>.L RELLEVEL
RELLEVEL
0001 X
0002 11.3.5
0003 PICK
0004 PICK.FORMAT
0005 11.3.5
>
>CREATE.FILE TEST.DYNAMIC_4 3 DYNAMIC SEQ.NUM
Creating file "TEST.DYNAMIC_4" as Type 30.
Creating file "D_TEST.DYNAMIC_4" as Type 18, Modulo 3, Separation 1.
Added "@ID", the default record for RetrieVe, to "D_TEST.DYNAMIC_4".
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 64BIT Revision 12
NLS Character Set Mapping .. NONE
Hashing Algorithm .......... GENERAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1619 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
>
Is there some fancy command-line secret handshake that is needed to create such a file, or is it just no longer possible to use the SEQ.NUM algorithm?
------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------
I think the issue you are encountering is Pick flavor CREATE.FILE. Check by trying the ANALYZE.FILE on the DICT TEST.DYNAMIC_4, and I think you will find it is dynamic. The Pick CREATE.FILE wants to create both the DICT and DATA, and the dictionary consumes the SEQ.NUM keyword.
Try using the DATA keyword to individually create the DATA portion as a dynamic file. The DYNAMIC keyword seems to fail, but this should work:>create.file DATA TEST.DYNAMIC_4 1,8,30 SEQ.NUM
Creating file "TEST.DYNAMIC_4" as Type 30.
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... SEQUENTIAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 3267 bytes
Group size ................. 4096 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 12288 bytes
Note: You should select an appropriate separation for the records contained in the file.
Using the DYNAMIC keyword does not allocate the SEQ.NUM to the DATA file.>create.file DATA TEST.DYNAMIC_4 DYNAMIC SEQ.NUMCreating file "TEST.DYNAMIC_4" as Type 30.
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... GENERAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1628 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
------------------------------
Mark A Baldridge
Principal Consultant
Thought Mirror
Nacogdoches, Texas United States
------------------------------
From an Ideal Account
>CREATE.FILE TESTDYN 30 3 1 SEQ.NUM
Creating file "TESTDYN" as Type 30.
Creating file "D_TESTDYN" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_TESTDYN".
>ANALYZE.FILE TESTDYN
File name .................. TESTDYN
Pathname ................... TESTDYN
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... SEQUENTIAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1628 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
>
If not in an ideal account ... from 11.3.2 try using ICREATE.FILE and the syntax above
>.L RELLEVEL
RELLEVEL
001 X
002 11.3.5
003 PICK
004 PICK.FORMAT
005 11.3.5
>ICREATE.FILE TESTDYN 30 3 1 SEQ.NUM
Creating file "TESTDYN" as Type 30.
Creating file "D_TESTDYN" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_TESTDYN".
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
Thanks Jonathan.
What does the "3 1" part of the command line do?
The Dict always appears to be "Type 3, Modulo 1, Separation 2" regardless.
------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------
I think the issue you are encountering is Pick flavor CREATE.FILE. Check by trying the ANALYZE.FILE on the DICT TEST.DYNAMIC_4, and I think you will find it is dynamic. The Pick CREATE.FILE wants to create both the DICT and DATA, and the dictionary consumes the SEQ.NUM keyword.
Try using the DATA keyword to individually create the DATA portion as a dynamic file. The DYNAMIC keyword seems to fail, but this should work:>create.file DATA TEST.DYNAMIC_4 1,8,30 SEQ.NUM
Creating file "TEST.DYNAMIC_4" as Type 30.
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... SEQUENTIAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 3267 bytes
Group size ................. 4096 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 12288 bytes
Note: You should select an appropriate separation for the records contained in the file.
Using the DYNAMIC keyword does not allocate the SEQ.NUM to the DATA file.>create.file DATA TEST.DYNAMIC_4 DYNAMIC SEQ.NUMCreating file "TEST.DYNAMIC_4" as Type 30.
>ANALYZE.FILE TEST.DYNAMIC_4
File name .................. TEST.DYNAMIC_4
Pathname ................... TEST.DYNAMIC_4
File type .................. DYNAMIC
File style and revision .... 32BIT Revision 12
Hashing Algorithm .......... GENERAL
No. of groups (modulus) .... 1 current ( minimum 1 )
Large record size .......... 1628 bytes
Group size ................. 2048 bytes
Load factors ............... 80% (split), 50% (merge) and 0% (actual)
Total size ................. 6144 bytes
------------------------------
Mark A Baldridge
Principal Consultant
Thought Mirror
Nacogdoches, Texas United States
------------------------------
Thanks Mark.
It certainly appears that the DYNAMIC and SEQ.NUM keywords are mutually exclusive in the Pick syntax.
------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------