Guardian Programmer's Guide

Table Of Contents
Communicating With Disk Files
Guardian Programmer’s Guide 421922-014
5 - 79
Creating Partitioned Files
PROC CREATE^PARTS MAIN;
BEGIN
STRING .KEYFILE[0:ZSYS^VAL^LEN^FILENAME]; !primary-key
! file name
INT LENGTH; !length of primary file name
INT .ITEM^LIST[0:63]; !list of items to pass to
! FILE_CREATELIST_
INT .VALUES[0:512]; !values of those items
INT NUMBER^ITEMS; !number of items
INT VALUES^LEN; !total length of items
INT ERROR; !system procedure call error
KEYFILE ':=' "$ADMIN.OPERATOR.KEYFILE" -> @S^PTR;
LENGTH := @S^PTR '-' @KEYFILE;
ITEM^LIST ':=' [ZSYS^VAL^FCREAT^FILETYPE,
ZSYS^VAL^FCREAT^LOGICALRECLEN,
ZSYS^VAL^FCREAT^BLOCKLEN,
ZSYS^VAL^FCREAT^KEYOFFSET,
ZSYS^VAL^FCREAT^KEYLEN,
ZSYS^VAL^FCREAT^PRIMEXTENTSIZE,
ZSYS^VAL^FCREAT^SCNDEXTENTSIZE,
ZSYS^VAL^FCREAT^NUMPRTNS,
ZSYS^VAL^FCREAT^PRTNDESC,
ZSYS^VAL^FCREAT^PRTNVOLLEN,
ZSYS^VAL^FCREAT^PRTNVOLNAMES,
ZSYS^VAL^FCREAT^PRTNPARTKEYLEN,
ZSYS^VAL^FCREAT^PRTNPARTKEYVAL];
NUMBER^ITEMS := 13;
VALUES ':=' [3, !primary-key file type
134, !primary-key file record length
4096, !primary-key file block length
0, !primary-key file key offset
6, !primary-key file key length
64, !number of alternate-key specifiers
8,
64,8,64,8,64,8,
6,6,6,
"$PART1$PART2$PART3",
2,
"255075"] -> @S^PTR;
VALUES^LEN := (@S^PTR '-' @VALUES) '<<' 1; !length in
! bytes
! of VALUES
! parameter