Appendix
Input/Output and Control Options  
  Several directives and system functions described in this document include optional syntax elements in their formats. Some are defined individually, and some are listed in format groups (ctrlopt or fileopt).

File options, fileopt, are used to fine tune code and redirect processing; e.g., they can be used to handle exceptions, set the position of the key, deal with data errors, etc. Control options, ctrlopt, are used primarily to set various aspects of a control object. Refer to the format (syntax) descriptions of the specific directive and function for information on use of each option listed below.

   
File Options The following are common input/output file options:
BSY=stmtref On record or file busy status, transfer to program line number/statement label.
BSZ=num Block size in bytes.
DIR=num Direction indicator. This adjusts the record pointer by num records, where a positive value advances the pointer, a negative pointer reverses the pointer, and a DIR=0 indicates no movement. This option is not supported with use of the [WDX] tag.
DOM=stmtref When specified the DOM option indicates the statement number (nnnn) to transfer to if the record referenced by the directive is either missing (in the case of read directives) or already exists (in the case of write directives).
END=stmtref When specified on a read directive indicates the statement number (nnnn) to transfer to if the end of the file is reached (Error #2). On a WRITE directive, the END option causes a transfer if the output file has reached its maximum size or no more file space is available.
ERR=stmtref The ERR option specifies the statement to transfer to should any error occur during the processing of the directive. If used in conjunction with the BSY=, DOM= or END= options, the other options take precedence.
IND=num Generally used to define the record being accessed by its record 32-bit record index.
  • For Fixed length keyed files, num represents an offset into the data file (first record has an index of 0, second is 1, and so on). However, some record indexes will be set aside by the system to be used for key tables and may yield gaps where the record indexes have been used for keys.
  • For Variable length keyed files, num represents a logical page address and record index within that page. The page address is contained in the top 24-bits (high order 3 bytes) with a record index within that page in the lower 8 bits. For VLR files, the page address is the actual physical address for the data page. For EFF files, the page address is a logical page number in the file.
  • For TCP/IP server files, num represents an internal socket connection to the client that can be used to manually direct output to specific sockets.
  • Used with the INPUT directive, IND=num sets the starting position (column number) of the cursor in the input field
IOL=iolref Either a string variable containing the object code of an IOLIST, the name of the IOLIST (for files with multiple record formats) or a statement reference to an IOList (statement number/label).
ISZ=num File open for access in binary mode.
KEY=string$ Record key or Password to open file. (KEY\="?" provides list of databases (tables) defined in ProvideX ODBC.)
KNO=num|name$ File access key number (num) or name (name$), where num is 0 based (0-15 for VLR/FLR files, 0-255 for EFF files).
LEN=num The LEN option can be used with the INPUT directive to limit the length of the input data. If this option is specified the INPUT directive, only the number of characters specified by num will be read. No further data will be accepted. The input must be terminated by a <ENTER> key, control key, or other function key.
NBF=num Dedicated number of buffers.
NUL=stmtref On no input, transfer to program line number/statement label.
OPT=string$ File open options.
REC=string$ Record prefix (REC=VIS(string$) can also be used).
RNO=num Record number.
RTY=num Number of times to retry (one second intervals). Default is set via the 'WT'= System Parameter.
SEP=char$ Default field separator character. Hex or ASCII string value.
SIZ=num Number of characters to read: If negative, num identifies the number of characters to be read. If num is a positive number, the read continues until num characters are received.
Number of bytes to write: If num exceeds the amount of data being written from the variable, the data is padded with nulls.
TBL=stmtref Data translation table.
TIM=num Maximum time delay to wait before returning an record/file busy error..
   
Control Options The following options are used in control directives:
ERR=stmtref Error transfer
FNT="font,size[,attr]" Font name, size, optional attributes Refer to the 'FONT' Mnemonic, for details.
FMT=def$|mask$ Format definition for the associated control. For character string masks, see Data Format Masks.
KEY=char$ Hot key
LEN=num Maximum input characters.
MSG=text$ Message line.
MNU=ctl CTL value associated with right-click menu event.
NUL=string$ Empty value.
OPT=char$ Single character parameter/option.
SEP=char$ Single character translation.
TIP=text$ Mouse pointer message. Refer to the 'TC'= System Parameter, to change the colour.