Enscribe Programmer's Guide
INT QF^NameLen;
LITERAL Key^Length = 8; ! Key length
! (must be >= 8)
INT Key^Len;
STRING .Key[0:Key^Length - 8]; ! Application key
LITERAL Rec^Len = 100; ! Record length
INT Items[0:20]; ! Attribute numbers
INT Value[0:40]; ! Attribute values
INT Error; ! Returned error code
INT Error^Item; ! Returned item-in-error
?SOURCE $SYSTEM.SYSTEM.EXTDECS0
(FILE_CREATE_,FILE_CREATELIST_)
QF^NameLen := QF^NameLength;
Key^Len := Key^Length;
Items[ 0] := 41; ! File type
Value[ 0] := 3; ! = key-sequenced
Items[ 1] := 42; ! File code
Value[ 1] := 1001; ! = 1001
Items[ 2] := 43; ! Logical record length
Value[ 2] := Rec^Len; ! = Rec^Len
Items[ 3] := 44; ! Block length
Value[ 3] := 4096; ! = 4K
Items[ 4] := 45; ! Key offset
Value[ 4] := 0; ! = 0 (unconditional for queue files)
Items[ 5] := 46; ! Key length
Value[ 5] := Key^Len; ! = Key^Len
Items[ 6] := 48; ! Queue File opt. (can also use #71)
Value[ 6] := 1; ! = this is a Queue File
Items[ 7] := 50; ! Primary extent size
Value[ 7] := 20; ! = 20 pages
Items[ 8] := 51; ! Secondary extent size
Value[ 8] := 10; ! = 10 pages
Items[ 9] := 52; ! Maximum extents
Value[ 9] := 64; ! = 64 extents
Items[10] := 66; ! Audited file
Value[10] := 1; ! = audit this file
Items[11] := 67; ! Audit compression
Value[11] := 1; ! = audit compression (can be 0)
Items[12] := 68; ! Data compression
Value[12] := 0; ! = no data compression (can be 1)
Items[13] := 69; ! Index compression
Value[13] := 0; ! = no index compression (can be 1)
Error := FILE_CREATELIST_(
QF^Name:34, ! filename:maxlen
QF^NameLen, ! filenamelen
Items, ! item-list
14, ! number-of-items
Value, ! values
28, ! values-length in bytes
Error^Item); ! returned error-item
IF Error <> 0 THEN ... ! error
Accessing Queue Files
Read and write operations to and from queue files differ from that of other key-sequenced files. A
write operation is called a queuing operation. When you access a queue file, a read operation
typically deletes the record from the file. This operation is called a dequeuing operation. To dequeue
a record, use the FILE_READUPDATELOCK64_/READUPDATELOCK[X] procedure. You can also
read a record without deleting it; to do this, use the FILE_READ64_/READ[X] procedure.
110 Queue Files