Jump to page titleUNITED STATES
hp.com home products and services support and drivers solutions how to buy
» contact hp

:

more options
 

hp.com home
End of Jump to page title
[DEC PL/I] Fixed Length Files Cannot Be Opened For Keyed Input
Jump to content



» 

business support center

Home & Home Office Support:
» HP branded products
» Presario branded products
» Services & Warranties
Small & Medium Business Support:
» Small & Medium Business products
» Small & Medium Business services
Support for IT Professionals:
» Enterprise products (IT Resource Center)
» NonStop enterprise products
» Business & IT Services
Content starts here
Copyright (c) Digital Equipment Corporation 1994.  All rights reserved.

PRODUCT:  DEC PL/I Version 4.0-5

OP/SYS:   OpenVMS AXP Version 6.1

SOURCE:   Digital Equipment Corporation


SYMPTOM:

Fixed length record format sequential files cannot be opened for keyed
input using integer keys.

An error such as this may occur:

   %PLI-F-ERROR, PL/I ERROR condition.
   -PLI-F-UNDFILE, PL/I UNDEFINEDFILE condition on file 'F'.
   -PLI-I-FILENAME, File name: 'DEVICE:[DIRECTORY]TEST.DAT;1'.
   -PLI-I-INVFORGKEY, Invalid file organization for KEYED access.
   %TRACE-F-TRACEBACK, symbolic stack dump follows


DIGITAL RESPONSE:

This problem has been acknowledged by engineering and they plan to
fix it in the next version of DEC PL/I for OpenVMS Alpha.


WORKAROUND:

Use relative files instead of sequential files.


ANALYSIS:

This is a change in the behavior from VAX PL/I to DEC PL/I for
OpenVMS AXP.

The following datafile and program will demonstrate the problem.
Compile, link and run with

  $ PLI test.pli
  $ LINK test
  $ RUN test.


TEST.DAT:

1234567890ABCDEFG
1234567890ABCDEFG
1234567890ABCDEFG
1234567890ABCDEFG
1234567890ABCDEFG

Note:  Record format is Fixed length 100 byte records.

TEST.PLI:

test: procedure options(main);

     declare f file;
     declare rec char(100) init('1234567890ABCDEFG');
     declare keyidx fixed binary(31);

     open file(f) output record title('test.dat')
         environment(fixed_length_records, maximum_record_size(100));
     do keyidx = 1 to 5;
         write file(f) from(rec);
     end;
     close file(f);

     Open file(f) input record keyed title('test.dat');
     do keyidx = 1 to 5;
         read file(f) into(rec) key(keyidx);
     end;
     close file(f);

     return;
 end test;




buy online or call 1.800.AT.COMPAQ
privacy statementusing this site means you accept its terms