HomeStartingEnvironmentDBMSVisualPQLProceduresSQLFormsHost/APIIndex
Environment homecontents start chapter top of pagebottom of pageindex Appendix

homecontents start chapter top of pagebottom of pageindex

Error Messages

The following is a list of the numbered error messages that may be issued by SIR/XS .

Error Messages

Code Meaning
---- ------------------------------------------------------------

0001 Command complete but not at end of line
     Extra information found while looking
     for the beginning of the next command.

0002 Option is invalid

0003 Number is out of valid range.

0004 Keyword is invalid.

0005 Filename is invalid.

0006 Maximum record count for record type exceeded.

0007 Statement is invalid at this point.

0008 Numeric syntax is invalid.

0009 Option is not currently in operation.

0010 Variable is not a program variable.

0011 KEYFIELDS specification is invalid.

0012 Value List not valid.

0013 Unknown Command.

0014 Tabfile name is required.

0015 Password is invalid.

0016 Record number or name is invalid.

0017 Record number exceeds max rec types in the schema.

0018 Group/user name or password is invalid.

0019 Preset variable with wrong type value.

0020 Table specification is invalid.

0021 Sort records statement is incomplete.

0022 Tabfile delimiter "." is missing.

0023 Case ID size exceeds maximum.

0024 Table already exists.
     A table of with the same name already exists and
     the REPLACE option is not specified.

0025 Variable list statement is incomplete.

0026 Duplicate name in variable list.
     The same variable name has appeared more than once
     in a list of variable names.

0027 Invalid READ or WRITE operator or format specifier.
     The letter is not a valid operator or
     format for the READ or WRITE statement.

0028 "TO list" is invalid.
     The names before and after the keyword TO must
     either be previously declared variable names or
     names of the form AAANNN, where AAA are alphabetic
     characters and NNN are digits, and NNN of the right
     side is greater than NNN of the left side.
     Only variables that reside in the same record
     (either CIR or a given RECORD TYPE or a given
     TABLE) may be used in a "TO list".

0029 Input format syntax error.

0030 Right parenthesis ")" missing from command line.

0031 Format is invalid.

0032 Name is missing or invalid.
     Valid names are up to 32 characters long
     and are recognised as follows:
     (a) A letter or one of four special character $,#,@,_
     followed by letters, digits, or the four special characters.
     All lowercase characters are translated to uppercase.
     (b) Any character sequence enclosed in curly
     brackets {}. The character sequence may be up to 30 chs.

0033 Variable is undefined.

0034 Cannot write to tabfile open for READ.

0035 Date/time map is invalid.

0036 Tabfile previously open for a different GROUP/USER NAME.

0037 Scale factor is invalid.

0038 Format requested conflicts with variable type.

0039 Variable range is invalid.

0040 Missing value is invalid.

0041 VARIABLE LABEL is invalid.

0042 VALUE LABEL is invalid.

0043 You do not have permission to add tables to a tabfile.

0044 COMPUTE statement requires an equal sign "=".

0045 VALUE LABELS list is incomplete.
     A variable or a list of variables is not
     followed by a list of value labels.

0046 JOURNAL option is invalid.
     Journalling is an attribute of the database.
     Database file number 5 is the default journal file.
     JOURNAL clauses for batch data input, retrieval,
     and SIR MERGE are not valid.

0047 "TO list" out of order.

0048 Invalid "TO list".

0049 Multiple assignment statement is invalid.

0050 All variables in "TO list" must be of the same type.

0051 Existing VALUE LABEL conflicts with new VALID VALUES.

0052 Cannot extend CODEBOOK file.

0053 Variable type changed.  VALUE LABELS deleted.

0054 Existing VALUE LABEL conflicts with new RANGES.

0055 "TO list" subscript must be numeric.

0056 Option is invalid for variable.

0057 Cannot change attribute of CASE ID after data entered.

0058 Cannot open database journal file.

0059 Command valid only during data dictionary modification.

0060 PAGE SIZE is invalid.
     For the standard output file, the page width must
     be between 50 and 254, and the page length at least
     10 lines. The keyword NOEJECT may be used to turn
     off paging.

0061 Invalid record security code.
     DBA security has been assigned to the record.

0062 Variable security list is invalid.

0063 Unknown command.

0064 "TO list" has undefined variables on right side.

0065 Data file is empty or uninitialised.

0066 Variable is already declared as temporary.

0067 Cannot open database.

0068 Common/temporary name conflict.

0069 Only DBA may set record access levels.

0070 String length is invalid - 32 assumed.

0071 End quote mark (') missing from string.

0072 Character is invalid at this point.

0073 Variable name is invalid.

0074 Function is unknown.

0075 Required index name is missing.
     This command requires an index name.

0076 Wrong type of variable in function call.

0077 Required TABLE name is missing.
     This command requires a table name.

0078 Wrong number of arguments in function reference.

0079 Mismatched parentheses "( )".

0080 Equal sign "=" is in an invalid position.

0081 Can only assign values of same type.

0082 CASE ID or KEYFIELDS is missing from the data line.

0083 Expecting 'TO' in expression

0084 Expression is invalid.

0085 Invalid redefinition of a variable.

0086 New COMMON VARS defined, Database unload/reload required.

0087 Common variable type specification is invalid.

0088 Tabfile is not connected.
     An operation on a tabfile failed because the named
     or assumed tabfile is not connected.

0089 Index is not in tabfile.

0090 CASE ID or KEYFIELDS are not defined in the record.

0091 Table is already in use.
     The SAVE TABLE procedure cannot create or
     replace a table which is already used during
     retrieval or by another SAVE TABLE procedure.

0092 Larger CIR is required for this record type.

0094 Total name not found in PRINT list.

0095 Error in list specification.
     A list of variable names, values, keywords:
     - is not terminated properly; or
     - contains invalid characters, names, keywords; or
     - is empty.

0096 List of variables is missing.

0098 Option ignored for saved executables.
     The option is used only when running
     programs or retrievals and is ignored when
     saving executables.

0099 Break name on SUBTOTAL clause not found.

0100 Column name on SUBTOTAL clause not found.

0102 Error in sort package
     A call to a routine in the sort returned an error.
     Possibly a physical problem with disk or
     a file size limit exceeded.

0103 Cannot tab backwards in PRINT clause.

0104 Error in index value list.
     The number of values exceeds the number
     of variables in the index, or
     the value or variable are of incompatible
     type - one of type string, the other of type
     numeric.

0105 Index is not unique.
     Warning when the index used on a
     (OLD/NEW) ROW IS statement is not unique.

0106 Invalid use of standard file.
     A reserved file used incorrectly. For example,
     reading from the standard output file or a random
     write to the standard output file.

0107 Expected character not found in READ statement.

0108 FILENAME specification is invalid.

0109 Statement label clause is invalid.

0110 READ statement is invalid.

0111 Data type is incompatible with format.

0112 Invalid value on COUNT clause.
     A number must be a numeric constant greater than
     zero.

0113 Number of cases has been redefined. Reload Database.

0114 Records per case has been redefined. Reload Database.

0115 Record type columns have been redefined.

0116 Cannot define locally for a Standard Variable.

0117 You cannot decrease maximum record types.
     A record type exists that is greater than the maximum
     specified. Either delete the record type(s) or
     specify a larger maximum value.

0118 Maximum record types increased. Reload Database.

0119 No variables to move.
     The GET VARS or PUT VARS command has
     an empty variable list or uses ALL outside a
     PROCESS CASE/CASE IS, PROCESS RECS/REC IS, or
     PROCESS ROWS/ROW IS block.

0120 List of index values is incomplete.
     The number of index values in a (OLD/NEW)
     ROW IS statement is not equal to the number of
     variables in the index.

0121 PUT VARS can only be used in UPDATE mode.
     The database or the tabfile has not been opened
     for update.

0122 The KEYFIELD is invalid.

0123 Input format must follow a variable list statement.

0124 Slash "/" missing where expected.

0125 Numeric/string constant syntax error.

0126 Error in processing VALUE LABELS.
     An error occurred while inserting value labels.
     Possible reasons are:
     (1) Valid ranges exist and value is not in range.
     (2) Value is in missing range.
     (3) String is too long and is truncated.

0127 Format exceeds MAX INPUT COLS.

0128 Variable is not defined in record.

0129 Maximum number of records in database is too large.
     NO OF CASES multiplied by RECS PER CASE is the
     upper limit of records in the database. This number
     cannot exceed 2,147,483,648.
     Make sure that NO OF CASES and RECS PER CASE are
     reasonable values and their product does not exceed
     the maximum.

0130 Page width is too narrow for the generated report.
     The REPORT generated requires a larger page width
     than specified in the PAGESIZE-clause (or assumed
     by default). The amount needed is displayed in the
     error message, next to the error number.

0131 You cannot total/subtotal strings/dates/times/cat vars.

0132 DATE STRING syntax is invalid.

0133 Command valid in batch mode only.
     The command is ignored because it is
     invalid during an interactive run.

0134 Table name cannot be the same as the tabfile name.

0135 Unexpected end of data while reading a data record.

0136 Invalid record type field on data line.

0137 Data line sequence number out of order.

0138 Write security not granted for variable.

0139 Error reading numeric data.

0140 Value is outside valid range.

0141 Security not granted to write record.

0142 Record to be updated does not exist.

0143 New record in REPLACE ONLY mode.

0144 Old record in ADD ONLY mode.

0145 CASE ID or KEYFIELD missing is record to be updated.

0146 Category not found for variable.

0147 Default date/time MAP assigned. (warning)

0148 CASE ID or KEYFIELD is not defined in variable list.

0149 Invalid option.

0150 Quote mark (") missing where expected.

0151 CASE ID/KEYFIELD invalid on READ statement.

0152 Invalid or duplicate INCLUDE/EXCLUDE list.

0153 Excluded variable missing.

0154 Included variable missing.

0155 TOTAL list specified with SUPPRESS TOTALS.

0156 KEYWORD not valid with this command.

0157 Only DBA can modify access levels.

0158 Cannot mix Visual PQL and Execution window commands

0159 Data list item is invalid.

0160 Line number is invalid.

0161 Column number is invalid.

0162 Type is invalid.

0163 Columns do not divide evenly among variables.

0164 Field is too small for assumed decimal point.

0165 Input columns for variable overlap with another var.

0166 Record type does not match on every line of record.

0167 CASE ID/KEYFIELD does not match on every line of record.

0168 Value read is not in valid value list.

0169 Only DBA can use this command.

0170 No permission granted to read variable.

0171 Update cancelled due to previous errors.

0172 Case not found.

0173 Only DBA can change JOURNAL ON/OFF setting.

0174 Error in I/O status variable specification.
     The I/O status variable must be a program variable
     and it must be numeric.

0176 The value list in the PROCESS statement is invalid.

0177 Index range is invalid.
     INDEXED BY 'indexname' is not followed by a
     recognisable keyword.

0178 Redefinition of record schema - rectype locked.
     Run UNLOAD/RELOAD.

0179 Integer list item is invalid.

0182 Equal sign "=" missing where expected.

0183 Wrong type of file for this command/option.

0184 Missing quote mark (") at beginning of string variable.

0185 Maximum number of input characters exceeded for rec type.

0186 String variable is not allowed in this context.

0187 Sample specification is missing.

0188 Syntax error in sample specification.

0189 Invalid sample number. Use a number between 0 and 1.

0190 Character is invalid.

0191 Syntax error in statistics keyword.

0192 Read statement list exceeds available input columns.

0193 Output statement list exceeds available output columns.

0194 Invalid variable used as weight specification.

0195 File previously declared a different type.

0196 Duplicate option or keyword.

0197 Procedure specification is incomplete.

0198 Undefined, missing or unknown tabfile.

0199 Left parenthesis "(" missing where expected.

0200 Max record count for case exceeded - record skipped.
     This results in an error.  Data are lost.

0201 Variable for filename spec must be a string variable.

0202 A key field has a missing value - record skipped.

0203 Record exists but NEW rec indicated on UPLOAD file.

0204 Record does not exists, but new or delete rec attempted.

0205 Bad definition value on upload file.

0206 Unexpected end of file.

0207 Loading factor must be a number between 0 and 1.

0208 Format specification missing.

0209 No filename.
     The FILENAME clause is missing and/or a default
     filename could not be constructed.

0210 Invalid record type value on upload record.

0211 Left parenthesis "(" missing where expected.

0212 Invalid format - does not specify any data.

0213 Record type found in download that was not selected.

0214 Update code on upload file is invalid.

0215 Bad variable number on upload file.

0216 Variable name or type does not match.

0217 Syntax error in limit specification.

0218 Keyword WITH is missing from command.

0219 Only one independent variable.

0220 Only one dependent variable allowed if control var used.

0221 Too many dependent variables.

0222 Keyword BY missing from command.

0223 DIVISION parameter value is invalid.

0224 Unknown device name entered.

0225 Device specification is invalid.

0226 Size exceeds device limit.

0227 Incorrect number of symbols.

0228 Data on UPLOAD file is invalid.

0229 Only one control variable allowed per chart/plot.

0230 Label field not allowed in current context.

0231 Statement allowed in RETRIEVAL/PROGRAM UPDATE only.

0232 Grouped BREAK VARS with SUPPRESS GROUPING.

0233 PRINT list is required for generated report.

0234 Unknown label referenced in command.

0235 Column heading with SUPPRESS COLHEAD.

0236 Invalid to add/delete rows in table being processed.
     It is invalid to add new rows to a table or to
     delete rows from a table while this table is being
     processed in an outer loop. Nested processing of
     tables can only be in read-only mode.

0237 LABEL is invalid.

0238 Attempted to modify var when CASE/RECORD/ROW invalid.
     Restore the record command.

0239 Attempted to access var when CASE/RECORD/ROW invalid.
     Restore the record command.

0240 Missing value is invalid for CASE ID/KEYFIELDS.

0241 Data file is full, download stopped.
     Do an UNLOAD/RELOAD when data file is full.

0244 CASE ID/KEYFIELDS not within valid range or list.

0245 Common variable previously specified as a non-integer.

0246 User interrupt - download stopped.

0247 Invalid value  on ERROR/WARNING limit command.

0248 Sort list with SUPPRESS SORT.

0249 Record added to a case that has been deleted.

0250 Table previously in non-update mode requires update.

0251 Can't merge caseless database into case structured db.

0252 Subfile variable must be a numeric program variable.

0253 Sort order specification is invalid.

0254 Invalid in batch mode - retrieval stopped.

0255 Invalid key field reference in UPLOAD file.

0256 Previous value labels ignored due to type change of var.

0257 Categorical/missing value not defined.

0258 Variables moved do not match in type.
     A CIR, RECORD, or ROW variable moved using GET/PUT
     VARS has a different type than the corresponding
     program variable.

0259 Invalid KEYFIELDS value on PROCESS REC/REC IS statement.

0260 Security not granted to read record.

0261 "DO REPEAT" cannot appear inside another "DO REPEAT".

0262 Invalid array index - Undefined value returned.

0263 Invalid array index - not executed.

0264 Duplicate variable.

0265 Maximum temporary variables exceeded.

0266 You can't declare existing record variable as an integer.

0267 VARLAB/VALLAB requires a program variable as an argument.

0268 Variable in list is not a program variable.

0269 Valid value not previously defined.

0270 Program variables cannot be modified by procedures.

0271 Too many files referenced in this run.

0272 Invalid input/output mode specification.

0273 Only one decimal point allowed in picture

0274 Invalid sequence of special characters in picture.

0275 Index variable missing.

0276 Error writing to the PROC file.

0277 Source database name missing.

0278 Cannot reopen tabfile with a table open.

0279 Invalid TABFILE CONNECT security, trying PUBLIC.

0280 Invalid set of keyword options.

0281 Variable must be numeric.

0282 Cannot close tabfile with a table open.

0283 RECODE list is invalid.

0284 No variables to be recoded.

0285 You cannot mix data types in a RECODE statement.

0286 Invalid BREAK LEVEL NUMBER/NAME.

0287 Previous BREAK LEVEL has no node to come from.

0288 Variable is not summary variable

0289 Subtotal list with SUPPRESS SUBTOTAL.

0290 SUBTOTAL LIST without any BREAK LIST.

0291 Cannot close table from within a PROCESS ROW block.

0292 Invalid pseudo variable.

0293 Substitution value is invalid.

0294 Invalid range for substitution value.

0295 Invalid BUFFER line number specification.

0296 Invalid "DO REPEAT" termination.

0297 Invalid BUFFER line range specification.

0298 PURGE SIR FILE invalid with errors in the current run.

0299 Security not granted to delete record or case.

0300 Mismatched parentheses "()" on HEADING/FOOTING statement.

0301 Error opening file during retrieval execution.

0302 End of data reached while reading a file.

0303 Undefined record type.

0304 READ/WRITE attempted after END-OF-FILE or I/O error.
     Attempted operation on a file after either an
     end-of-file condition or an error found.

0305 Record type already specified.

0306 Error in COUNT specification.

0307 More than one CASE SELECT option.

0308 File opened in the wrong mode for this operation.

0309 New data type is incompatible with previous definition.

0310 Old variables can not be modified.

0311 New variables can not be defined.

0312 Record name matches RECORD SCHEMA command keyword.

0313 Database name is invalid.

0314 Record type name must be appear on RECORD SCHEMA command.

0315 CASE ID variable invalid.

0316 Record type lock required, but permission is not given.

0317 Record type is invalid.

0318 SIR SAVE FILE specification is invalid.

0319 Too many sort files - only 9999 are allowed.

0320 READ/WRITE error or END-OF-FILE condition.
     A read/write error or end-of-file condition
     occurred and no error processing set. The
     status variable (IOSTAT= varname) or error branch
     (ERROR= label) may be used to process I/O errors in
     a retrieval.

0321 CASE ID variable is not a program variable.

0322 Record type missing.

0323 KEYFIELDS variable matches CASE ID.

0324 Data exceeded record length.
     The data actually entered in the record exceeds
     what the record length allows for. The data will
     not be inserted.

0325 Command invalid without defined schema.

0326 Syntax error in array list.

0327 Invalid dimension of array.

0328 Wrong number of subscripts in array reference.
     The number of subscripts referenced in this
     expression disagrees with the number of subscripts
     on the array statement.

0329 Invalid variable or array reference.
     In a context where only a variable or array
     reference is expected, unexpected characters are
     detected.

0330 Array references must be followed by a "(".

0331 Subscript expression contains a missing result.
     A subscript expression for an array reference
     contains a missing result. If the array element is
     being loaded, its value will be "undefined". If the
     array element is being stored into, the store
     operation will be skipped.

0332 Subscript value violates array bounds.
     A subscript value for an array reference is out of
     the range specified by the bounds on the array
     statement. If the array element is being loaded,
     its value will be "undefined". If the array element
     is being stored into, the store operation will
     be skipped.

0333 Format requested conflicts with expression type.

0334 Closing bracket is missing from expression.

0335 Database security violation.

0336 Source file header is missing.
     This error message could indicate a failure to
     locate the source database on the specified file.
     Check the database name on the DATABASE
     clause and/or run ITEMIZE FILE on the source file.

0337 Inconsistent/duplicate keyword/option.
     A keyword or option has been specified twice or two
     options are inconsistent with each other.

0338 Error reading source file.

0339 Password incorrect for source file.

0340 Source database security violation.

0341 Array cannot be used in this context.
     An array reference is not permitted here. Only a
     simple variable may be referenced.

0342 Name required after AS keyword.

0343 Security specified is invalid.

0344 Subscripted expression used on non-array variable.
     A variable is followed by a "(" but the variable is
     not an array.

0345 An array destination variable requires a source variable.

0346 Record does not exist on source file.

0347 Unknown buffer name.

0348 Record type is invalid.

0349 UPDATE specification is invalid.

0350 Error in RENAME specification.

0351 Undefined template referenced.

0352 Record type in host file is not compatible.

0353 Specified edit buffer is empty.

0354 Source database name is incorrect.

0355 Statement not valid unless in DEBUG mode.

0356 Duplicate variable name after rename.

0357 Saved executable not is not in the proper format.
     When reading the saved executable or compiled subroutine,
     one of the control words or counts did not match.

0358 Merged Record type causes CIR record count to be exceeded

0359 Host MAX KEY SIZE is too small for merging this rec type.

0360 Data file is empty.

0361 HOST common/temporary variable matches source.

0362 KEYFIELDS cannot be temporary or common variables.

0363 Unallocated common variable referenced - rec type locked.

0364 Rec type number exceeds max rec types - rec type locked.

0365 Data record larger than data block - record type locked.

0366 Data record larger than recommended value.

0367 Record type key size larger than max - rec type locked.

0368 Keysize increased - database locked.
     Increasing the maximum keysize caused the database
     to be locked. An UNLOAD - RELOAD sequence is
     required to unlock the database.

0369 DBA security required to lock the database.

0370 Common var changed to REAL to match previous definition.

0371 Data file never initialised.

0372 Invalid syntax in BOOLEAN clause.

0373 VALUE LABELS cannot precede CAT VAR definition.

0374 Invalid DATE/TIME string.

0375 Record type locked - database reload required.

0376 Invalid keysize.
     The value for the maximum keysize is invalid. It
     must be greater than zero and less or equal the
     maximum keysize possible (320 characters).
     The new value for the maximum keysize cannot be
     less than the current value.

0377 Common variable not yet allocated to CIR.

0378 The saved executable is not for the current database.
     When reading the saved executable or compiled subroutine,
     the internally referenced database is not the current
     database.

0380 MAX REC COUNT has been increased too much.

0381 Only DBA can modify an existing schema.

0382 New maximum case value less than current number of cases.

0383 Record type name generated.

0384 Constant table is too large.

0385 Available storage space for variables exceeded.
     Too many variables were specified causing certain internal
     fields to overflow. Limit the number of variables in one routine
     to less than 4094 and try again. Sub-routines have separate counts
     and are each limited to 4094.

0386 Fewer variables than format specifies- remainder ignored.
     This warning denotes an inconsistency between the
     number of variables specified in the VARIABLE LIST
     command and the number of format specifications in
     the INPUT FORMAT statement: the format allows more
     variables to be read than there are in the variable
     list.

0387 No new cases allowed with NONEW option.

0388 More variables than format specifies - format will cycle.

0389 Maximum number of program variables exceeded.

0390 Invalid to modify current key variables
     Variables used to create the key for the current
     record (CIR and Keyfields) or row (variables used in
     the current index) cannot be modified in the
     program.

0391 No record types defined.
     In order to execute the command, at least one
     record type must be defined for the database.

0392 This command may only appear once in a PQL program.

0393 Expected character not found.

0394 Lower and upper range values are equal.

0396 No BREAK LEVEL statement found in report definition.

0397 Report specification incomplete (/PRINT may be missing).
     A report statement without a /PRINT clause is not
     followed by statements forming a report body.
     This usually indicates that a /PRINT clause is
     missing from the REPORT statement: only the presence
     of a /PRINT clause initiates the processing by the
     Simplified Report Procedure.

0398 Run terminated due to previous error(s).

0399 Security not granted to execute retrieval.

0400 Command is not valid when terminal in full screen mode.

0401 Invalid Schema Command for CIR or STANDARD SCHEMA.

0402 New filename is invalid.

0403 New password is invalid.

0404 Sort key size exceeds maximum.
     Procedures sort the Procedure Table.
     The combined length of the variables which form the
     sort key exceeds the allowed maximum 320.
     To solve the problem, reduce the
     number of variables or their length.

0405 Source rec size larger than host data block - can't merge

0406 Variable list limit for procedure exceeded.

0407 No variables were selected to be processed.

0408 Variable must be a string variable.

0409 Record/common variable modification in UPDATE mode only.

0410 No permission granted to modify variable.

0411 I/O error while writing to procedure file.
     The last command which involved writing to the
     Procedure File could not be completed. The problem
     with the disk file containing the Procedure File
     must be resolved before any further I/O on the
     Procedure File may be done.

0412 Line data cannot be read from a called member.

0413 Previous EXIT/NEXT statement(s) are not in a loop.

0414 Security not granted to write case.

0415 First line of CALL text is not a command.

0416 Error in external sort package.

0417 I/O error on file.

0418 Format exceeds record length.

0419 End of line, null name used.

0420 Zero length, quoted filename found.

0421 Filename is too long.

0422 Invalid quoted filename.

0423 Filename does not start with an alphabetic character.

0424 Duplicate statement label.

0425 VAR LABEL reference for common variable has been deleted.

0426 VALUE LABEL reference for common var has been deleted.

0427 Label truncated during schema re-creation.
     When the VAR or VALUE LABELS command is
     reproduced, the extended label text (i.e. with
     enclosing quotes, and doubled, single quotes) does
     not fit into a single line. The label has to be
     modified before it can be reproduced properly.

0428 Database in executable has creation date/time mismatch.
     The creation date of the database internally referenced
     in the saved executable or compiled subroutine does not
     match the creation date and time of the current database.

0429 Error creating variable reference. Variable number >= 4096.

0430 Error creating variable reference. Table number    >=8.
     This is an internal error which should
     never occur. Please run the VERIFY FILE utility. If
     the error still occurs, send as much documentation
     as possible, including the database (or a subset of
     it) in EXPORT format, to SIR.

0431 Overlapping or out of order list items.

0432 Range ignored. Common variable has already been defined.

0433 VALID VALUES ignored.  Common variable already defined.

0434 CAT VAR specification ignored. Common var already defined

0435 Label record exceeds maximum size, label ignored.
     Only 32763 characters of label text is addressable
     by SPSS. The variable labels and
     value labels defined by the variables passed to the
     SPSS system file exceed that limit. The labels for
     this and all subsequent variables are ignored.

0436 Missing LDIVAR or DSNVAR variable, cannot open file.
     The LDIVAR or DSNVAR variable contains a missing
     value and not a valid file name; hence, the file
     cannot be opened.

0437 Bad LDIVAR or DSNVAR file name, cannot open file.
     The LDIVAR or DSNVAR variable contains a string
     that is either zero length or greater than the
     maximum filename; hence, the file cannot be opened.

0438 Can't load subroutine referencing a database from PROGRAM.
     A subroutine that is called by a PROGRAM must use the
     /NODATABASE parameter.  Without this parameter a database
     is referenced and the routine can only be called from a
     RETRIEVAL.

0439 Cannot form member name.
     A valid member name could not be formed.

0440 Member must be a text member.

0441 Family password mismatch.

0442 Member password mismatch.

0443 Cannot open proc file.

0444 Family not found.

0445 Member found but replace mode not specified.
     The member is opened for write but the member
     exists and REPLACE not specified.

0446 Member not found.

0447 Cannot open scratch file to process member.

0448 I/O error while initialising member.

0449 Proc file already open in this retrieval.
     Only one member at a given time may be opened
     during a retrieval.

0450 Null retrieval or null program.
     No executable command found between the
     RETRIEVAL (PROGRAM) statement and END RETRIEVAL
     (PROGRAM), FINISH or end-of-file.

0451 Subroutine referenced could not be found.

0452 Variable in list previously defined.

0453 Statement not allowed on multi-statement "IF".

0454 Block structure statement is invalid in current context.

0455 Invalid PRESET statement.

0456 Variable must be a program variable.

0457 Unknown type for variable  - REAL assumed.

0458 REPEAT factor must be an integer.

0459 Invalid variable list.

0460 RESTORE CIR/REC is not in CASE/RECORD loop.

0461 Current nesting of blocks is invalid.

0462 Errors in attempting to load subroutine, load ignored.

0463 Feature not supported in this version.

0464 END assumed to terminate current block structure.

0465 Compiled member deleted due to schema changes.

0466 PAGE EJECT invalid in PAGE block of REPORT.

0467 The record you want to RESTORE has been deleted.

0468 RESTORE REC in case loop.

0469 PERFORM PROCS statement without procedures or vice versa.

0470 Statement must appear in PROCESS ROW/ROW IS block.

0471 Statement must appear in PROCESS CASE/CASE is block.

0472 Statement must appear in process REC/REC is block.

0473 Attempted to delete a non-existent case/record/row.

0474 Statement is not in proper loop structure.

0475 Invalid "FOR" statement syntax.

0476 INDEX variable must be a numeric program variable.

0477 You cannot change attributes of MOVED variable.
     Attributes of variables moved into the data buffer
     via GET VARS cannot be changed.  Define the
     attributes prior to the GET VARS command.

0478 Comments must begin in column one.

0479 Either the ROW or COL variable must be specified.

0480 Command is invalid in PROGRAM - RETRIEVAL must be used.

0481 Page is too short to print headings and footings.

0482 If no OBS var is specified then a FILENAME is required.

0483 Too few OBS variables to match other specified lists.

0484 Argument in "FOR" statement is not numeric.

0485 Only one "AFTER RETRIEVAL" block allowed.

0486 Command not allowed in REPORT/"AFTER RETRIEVAL" block.

0487 Invalid aggregation function of string variable.

0488 Cannot have more than one "BEFORE REPORT" block.

0489 Cannot have more than one "AFTER REPORT" block.

0490 Cannot have more than one GLOBAL "ON ERROR" block.

0491 Command invalid at this point in report definition.

0492 Duplicate report break level name.

0493 Variable length is invalid.

0494 Variable previously defined.

0495 Variable has no MISSING VALUES defined.

0496 CIR not found upon return to a higher level case loop.

0497 All procedures have been cancelled.

0498 Invalid position for PRESET/DATA statement.

0499 Errors in loading compiled member.

0500 Cannot mix string and numeric variables in operation.

0502 Graph must specify an OBServation variable.

0503 Invalid operator.

0504 Case structure not specified.
     This error occurs when one or more case schema
     definition commands had been processed but the case
     structure of the database remains undefined. This
     is probably due to a missing CASE IS or NO CASES
     statement. This statement should be inserted before
     any other case schema definition command.

0505 Redefinition of case structure.
     Once a record schema has been defined, the case
     structure of the database cannot be modified in any
     way. If the database is still empty (it contains no
     data), the easiest way around this problem is -
        write the complete schema to a file (WRITE SCHEMA)
        delete the database (PURGE SIR FILE)
        start with a new database
        read the schema created in step 1, modify it, and run it.

0506 Cannot change type of string variable with modify schema.

0507 Cannot decrease MAX INPUT COLS once record types defined.

0508 Invalid redefinition of common variable.

0509 RANGE/VALID VALUE error in COMPUTE/RECODE.

0510 Invalid variable type.

0511 Command/Option/Function/Request is invalid at this point.

0512 Data truncation error in COMPUTE/RECODE.

0513 KEY SIZE is greater than MAX KEY SIZE.

0514 Data truncation error.

0515 Write access to tabfile is required to create index.

0516 READ/WRITE access violation found in COMPUTE/RECODE.

0517 Command/option is invalid for sequential data file.

0518 Record to evict is not IN the database.

0519 INPUT columns overlap rec type columns.

0520 INPUT columns overlap SEQUENCE columns.

0521 Unequal list lengths.

0522 Error in RANGE specification.

0523 Maximum COMMON VARIABLES exceeded.

0524 Maximum record types allowed is 4095.

0525 Maximum number of KEYFIELDS allowed is 4095.

0526 Maximum number of RECORD variables allowed is 4095.

0527 Field width error in DATE/TIME map.

0528 Command or option is invalid in interactive mode.

0529 Record name is not unique across all record types.

0530 Source specification missing in CALL command.

0531 Member specification error in CALL command.

0532 Parameter specification error in CALL command.

0533 "DO REPEAT" repeat statement cannot contain a "call *".

0534 Error in MEMBER/FAMILY specification.

0537 Family security error.

0538 Member security error.

0539 The name of an array matches a function name.

0541 Command is invalid in "CALL" or "DO REPEAT" statements.

0542 Invalid BLOCKS value.
     The number specified for BLOCKS must be a positive
     integer.

0543 Member already exists.

0544 Only DBA can create a new family.

0545 Null utility not executed.
     The utility requested would not create any output
     - SIR FILE LIST for a database without a case structure
     and no CIR variables or with the NOCIR option.

0546 Only DBA can modify passwords.

0547 Invalid security passwords.

0548 Command is invalid for databases without case structure.
     The command  is invalid for databases without
     case structure.

0549 Option is invalid for databases without case structure.

0550 Member is not a text member.

0551 Variable created.

0552 Feature is no longer supported.

0553 Previously defined N OF CASES ignored.
     N OF CASES greater than 1 for a
     database without a case structure.  This may have
     been caused by an N OF CASES command preceding the
     NO CASE ID command or by defining NO CASE ID after
     the default N OF CASES already assumed.
     N OF CASES is set to 1.

0554 Record count field update error.
     A journal record was not applied because it would cause
     the MAX REC COUNT for that record type to be exceeded.

0555 New KEYFIELD is not in old definition.

0556 New KEYFIELD type differs from old definition.

0557 Variable is not defined in new definition.

0558 Variable type is different in new definition.

0559 Variable length shortened in new definition.

0560 Variable conversion is str/numeric or numeric/str.

0561 Function is invalid at this point.

0562 Statement requires an operand.

0563 Operator is invalid at this point.

0564 Undefined temporary variable.

0565 Request to delete non-empty case  - ignored.
     A CIR journal record to delete a case was
     in the journal file but the record count fields shows
     that the case still contained records.
     The request to delete the case is ignored.

0566 KEYFIELDS option is invalid.

0567 Cannot open file.

0568 Error in global variable definition.

0569 Record count mismatch - PATCHED.
     A CIR journal record contained
     record counts different from computed record counts.
     The record count fields were set to the correct
     numbers before the journal is applied to database.

0570 Function cannot be executed - no Execution Window.

0571 Invalid UPDATE LEVEL/TYPE of record read.
     While reading the binary file, an invalid update
     level or an invalid type of record is found.
     This indicates that there is something wrong with the
     file being examined and causes ITEMIZE to stop.

0572 Error in journal record header.

0573 Cannot find journal which matches update level and date/time
     The journal restore process looks for a set of updates
     which exactly match the current update level and update date
     and time of the database.

0574 I/O error on journal/unload file.

0575 Incomplete record on journal file.

0576 Invalid update level.

0587 Data file became full while creating new CIR.

0588 Data file became full while creating new record.

0589 Case or record limit exceeded.

0590 Data File master index overflow.

0591 Data File is full.
     The data file is full and cannot be extended.
     Check the disk space allocation for this
     file or for your account.  Make sure that there is
     sufficient disk space available to continue then run
     VERIFY FILE.  VERIFY FILE will attempt to recover.

0592 Database is locked - reload required to unlock record.

0593 Only DBA can use this option.

0595 User interrupt.

0596 Invalid to set MAX INPUT COLS below REC TYPE COLS.

0597 Invalid to set MAX INPUT COLS below SEQUENCE COLS.

0598 Invalid to set MAX INPUT COLS below the system default.

0599 Sort file master index overflow.

0600 SEQUENCE COLS field is too small for some record types.

0601 RECTYPE COL value is too small for the record type.

0602 Premature End-of-Line detected.

0603 Invalid external file name.

0604 Invalid record length/block size.

0605 No current condition.

0606 Invalid conditional expression.

0607 Invalid string syntax.

0608 Conditional type mismatch.

0609 Previously defined variable.

0610 Cannot delete schema that has records in data file.

0611 SAS Blocksize is too small.

0612 User interrupt from utility.

0613 User interrupt from program.

0614 User interrupt from retrieval.

0615 Integer too large, variable type changed to R8.

0616 Out-of-date compiled RETRIEVAL/PROGRAM/SUBROUTINE.

0617 Current procedure type cannot be saved.

0618 Invalid pseudo-variable.

0619 Pseudo-variable already exists.

0620 Invalid number of quantiles.

0621 Invalid value for option.

0622 Cell contents error.

0623 Invalid variable/reserved word in expression found.

0624 Invalid MASK option.

0625 Invalid DECIMAL PLACES option.

0626 I/O failure for binary file read/write

0627 Invalid cell modifier.

0628 Invalid context for cell modifier.

0629 Too many table structure expressions.

0630 Operand invalid.

0631 Invalid expression.

0632 Chunk formatting error.

0633 WAFER/STUB output formatting error.

0634 Row/column variable without range.

0635 Invalid redefinition of a record variable as common.

0636 Invalid name for index.

0637 Index not found.

0638 All indexed fields required for spreadsheet access.

0639 All keyfields must be specified for spreadsheet access.

0652 No permission granted for required operation.

0697 If specifying one control var, must be ROW.
     If specifying two control vars must be ROW & COL.

0701 Contents of member does not match name/type of member.

0703 Called subroutine with wrong number of input arguments.

0704 Called subroutine with wrong number of output arguments.

0705 External common areas cannot INCLUDE other areas.

0706 Input argument type mismatch on subroutine call.
     The type of the value passed as a subroutine input
     argument does not match the type declared in the
     subroutine.

0707 Type mismatch of subroutine output (returning) argument.
     The type of the value passed as a subroutine output
     argument does not match the type declared in the
     subroutine.

0708 RETURN statement is not valid in a RETRIEVAL or PROGRAM.

0710 Missing END EXTERNAL VARIABLE AREA statement assumed.

0711 Cannot find specified EXTERNAL VARIABLE BLOCK to load.

0712 Missing or invalid window size declaration.

0713 Invalid External Variable Block. Possibly old version.
     An invalid EXTERNAL VARIABLE BLOCK was found during
     loading. The block may need to be re-compiled.

0714 Duplicate EXTERNAL VARIABLE BLOCK definition.

0715 EXTERNAL VARIABLE BLOCK variable is currently defined.

0716 TABFILE referenced in subroutine has wrong timestamp.

0717 EXTERNAL VARIABLE BLOCK password mismatch.

0718 EXTERNAL VARIABLE BLOCK creation timestamp mismatch.

0720 Expected keyword missing.

0721 Required fixed position parameter is missing.

0722 Error while attempting to copy a random file.

0723 Output file exist, but REPLACE option not specified.

0724 Variable specified is the wrong type.

0725 Input and output files are the same.

0726 Mismatch between tabfile used at execution & compile time
     The tabfile used at execution time must match the name
     and creation date of the tabfile used at compile time.

0727 Mismatch between Table used at execution & compile time.
     The table used at execution time must match name and
     creation date of the table used at compile time.

0728 Mismatch between Index used at execution and compile time
     The Index used at execution time must match name and
     creation date of index used at compile time.

0729 Cannot copy file to a SIR created file.
     The destination file in a SIR FILE COPY command cannot
     be one of the database files.

0730 Missing subprocedure definition.

0731 END SUBPROCEDURE missing.

0732 Statements not allowed after END SUBPROCEDURE statement.

0733 Duplicate SUBPROCEDURE definition.

0734 Statement allowed only within a SUBPROCEDURE.

0735 END PROCEDURE when not in a PROCEDURE

0736 String value required.

0737 Cannot store into variable because of incorrect lock.

0738 Cannot store into variable because record/cir is locked.

0739 Invalid lock specification.

0740 Lock expression must be numeric.

0741 Command not valid when using Master.

0742 Only a constant or variable name allowed.

0743 Record processed by EXPORT is locked.

0744 Case processed by EXPORT is locked.

0745 X,Y value specified is missing/undefined/out of range.

0747 Subroutine updates database - caller not in UPDATE mode.

0748 Invalid or missing EDIT buffer name.

0749 Line number missing or invalid.

0750 Specified line to process is missing.

0751 Edit buffer currently exists.

0752 Edit buffer is unknown.

0753 SREAD/NREAD - No columns left on line to perform read.
     The prompt for the read fills the line, therefore read
     cannot be performed on the current line.

0754 Command needs more parameters

0755 A block mode request for non-block mode machine.
     The BLOCKMODE keyword should be specified on the
     RETRIEVAL/PROGRAM/SUBROUTINE command to enable block mode
     commands.

0756 A non-block mode request for block mode machine.

0757 No menu to process

0758 Unknown stack command code

0759 Page width altered to fit table

0760 Page length altered to fit table

0761 Item Id required

0762 No menu to end

0763 Cannot define a window at this point

0764 No window or menu for title

0765 No dialog for title

0766 Cannot define menu item at this point

0767 Cannot define dialog item at this point

0768 Cannot define message processing block at this point

0769 Invalid type of message processing block

0770 No dialog for message processing block

0771 EXECUTE DBMS cannot be used in CASE/RECORD/ROW blocks

0772 Tabfile restore failed

0773 Can only use FORMS commands in a FORM

0774 Must have screen name

0775 END screen command missing

0776 Duplicate screen name

0777 Cannot define a screen at this point

0778 FIELD must have name

0779 Cannot have key field on screen more than once

0780 Must have all key fields on screen

0781 Command only valid in SCREEN block

0782 CALL SCREEN ... AUTO cannot be first command on screen

0783 PQL CONNECT DATABASE cannot be used in CASE/RECORD blocks

0784 Duplicate value label value

0785 No variables selected

0786 No data sources selected

0787 Could not find selected data source

0788 Could not find selected variable

0789 Cannot specify key for first data file

0790 Specified keys for data files must be in sequence

0791 Specified keys for data files not yet defined
     Key values on the DATA FILES command need to be defined
     either in COMMON VARS or in RECORD definitions

0792 Record schema not defined - can't modify variables

0793 Global substitution too long for input - global truncated
     Input length restricted to 254 charcaters

2000 Bad select value in Host routine

2001 Specified name for database does not match

2002 Invalid password for database

2003 Password needed to attach database

2004 No CIRs/records found within specified restrictions

2005 No more CIRs/records within specified restrictions

2006 Maximum record count exceeded for current CIR

2008 Data file empty

2009 Invalid date string

2010 Invalid time string

2011 No. of days outside valid date range

2012 Data file is full

2013 In use flag set - run VERIFY utility

2027 Data file is empty after last delete

2028 Retrieval update mode required to add new CIR/record

2029 Specified record type locked or undefined

2030 Maximum case limit exceeded - restructure

2031 Data file master index overflow - restructure

2032 Attempted to position beyond end of data file

2033 Database previously opened but not closed

2034 Retrieval update mode required to delete case/record

2040 Cannot open Journal file

2041 Database not initialized

2042 Database closed - must reopen

2043 Invalid Database Reference

2044 Cannot locate update level on reload file

2045 Cannot close database currently used by some stream

2046 Cannot open reload input file

2047 Invalid HOST password specified to use database

2048 Must be DBA to Modify Schema

2049 Invalid lock flag specified

2053 Database already exists

2054 Update level overflow - unload and reload the database

2055 In use by other process

2056 Not found on specified disk

2057 Access forbidden

2058 Problem with open routine

2059 Bad Master Index - must rebuild database

2060 Not created by current version of SIR - export & import

2061 Too many data files defined for index

3001 Invalid user number

3002 Invalid sequence of function calls

3003 Security can only be set prior to any other calls

3004 HOST not properly initialized prior to call

3005 Count total value is invalid

3006 Count increment value is invalid

3007 Count start value is invalid

3008 Function call must be in an active case/record block

3009 Next is invalid for case/record is block

3010 Exit is only valid in an active case/record block

3011 Delete is only valid in an active case/record block

3012 Write is only valid in an active case/record block

3014 Key type already defined in current block

3015 Invalid order of key creation routines

3016 Attempted to create too many key fields

3017 Too many values entered for current key

3018 Numeric value specified for character key

3019 Character value specified for numeric key

3020 Value outside valid range for numeric key

3022 Security level insufficient to read record/CIR

3023 Security level insufficient to write/delete record/CIR

3024 CIR/record already exists in database

3025 CIR/record not found in database

3026 Incompatible lock exists on specified CIR/record

3027 Specified CIR/record is available for read only

3028 Current LOCK type is not sufficient to MODIFY/WRITE data

3029 CIR/record must be locked exclusively to delete

3030 CIR/record must be locked to write

3031 Deleted CIR/record cannot be restored

3032 Specified record name not found

3034 Case operation performed on record block

3035 Record operation performed on case block

3036 Deleted CIR/record cannot be written to database

3038 Record processing must be within a case block

3039 Cannot add or delete records unless the case is locked

3043 Current LOCK type is not sufficient to READ data

3044 DBA read and write security required to delete case

3045 Sample value must be between 0 and 1

5001 Attempted to transfer a string to a numeric variable

5002 Attempted to transfer a number to a string variable

5003 Security level insufficient to read variable

5004 Security level insufficient to write variable

5005 Undefined value transfered

5006 Missing value 1 transfered

5007 Missing value 2 transfered

5008 Missing value 3 transfered

5009 Specified variable name not found in record/CIR

5010 Specified record type/database not currently in stack

5011 Specified record type/CIR not currently valid

5012 Only integer lengths of 1,2 and 4 allowed

5013 Only real lengths of 4 and 8 allowed

5014 Maximum string length of 4094 allowed

5015 Invalid variable number in descriptor

5016 Invalid level specifier

5017 Item of length 'n' must be on an 'n' byte boundary

5018 Blank is not a defined missing value for variable

5019 Key variable cannot be modified at current time

7001 Cannot open tabfile

7002 Cannot read from tabfile

7003 Cannot write to tabfile

7004 Cannot create a table with the same name as the tabfile

7005 Cannot open Journal file

7006 Cannot read from Journal file

7007 Cannot write to Journal file

7008 Tabfile is already connected, cannot reopen or create

7009 Tabfile is not initially empty

7010 Specified file is not a Journal file

7011 Attempted to add duplicate entry to unique

7012 File currently open for read only access

7013 File is not a SIR tabfile

7014 Attempted to create a duplicate index

7015 No permission granted to create table

7016 Table currently exists on tabfile

7017 No permission granted for requested operation

7018 Table does not exist

7019 Table currently in use for a non-compatible mode

7021 Cannot drop internal table/index

7022 Required index on system table is missing

7023 Tabfile is corrupt run VERIFY TABFILE utility

7024 Group/User name unknown for tabfile/table

7025 New Journal file must be empty

7026 Row previously dropped

7027 No more rows found for request

7028 Row exceeds maximum size for tabfile

7029 Numeric request for string column

7030 String request for numeric column

7031 Integer overflow converting real to integer

7032 Column name not found in table

7033 Index already open in incompatible mode

7034 Index not open

7036 Tabfile index required more than 6 levels

7037 JOURNAL/BACKUP file does not contain a valid header

7038 Null values are not allowed for specified column

7039 Invalid blocksize value

7040 Specified table number is invalid or table is not open

7041 Invalid column name or number of columns

7042 Numeric argument out of valid range

7043 Inconsistence between field widths of a real number

7044 Invalid setting for string column

7046 Arguments for routine are invalid at this time

7047 Invalid missing/valid range number or too many defined

7048 Valid and missing ranges should be disjunct

7049 Tabfile is unknown or closed

7050 Column already exists

7051 A table should have at least one column defined

7052 Categorical variable cannot have range

7053 Journal restore - tabfile already exists

7054 Tabfile creation date/time differs from Journal

7055 Journal file applies to a later version of the tabfile

7056 Journal file ended without tabfile close entry

7057 Expected journal entry to open tabfile not found

7058 Table creation date/time differs from Journal

7059 Attempted to open table for closed tabfile

7060 Invalid data while trying to add row

7061 Operation not valid for VIEW

7062 Excess information at end of Journal record

7063 Tabfile not found on Backup

7064 Full dump cannot be restored in pieces

7065 Cannot restore full backup to existing tabfile

7066 Block number referenced but not in original list

7067 Cannot write to backup file

9001 Master could not attach to new path

9002 Master could not Re-attach to old path

9003 Master could not delete an old path

9004 Master cannot open database datafile

9005 Master error deleting a complete case

9006 Error releasing case and/or lower record locks

9007 Master CIR rewrite failure

9008 Master CIR lock release failure

9009 Master CIR lock convert failure

9010 Master logout failed

9011 Master database data file close failure

9012 Master database data function failed

9013 Master record deletion failed

9014 Record lock release failure

9015 Master record rewrite failure

9016 Record lock convert failed

9017 Could not send message to Master

9018 Error opening current process input channel

9019 Error opening Master message echo file

9020 Cannot establish link with Master

9030 Master database record access failed

9031 Cannot establish required record type lock

9032 Cannot copy difference file

9033 Master closing - cannot accept logins

9034 Master shutdown

9035 Master password did not match

9036 Exceeded number of licensed users

homecontents start chapter top of pagebottom of pageindex

SIR/XS Files

The system uses various files predetermined files listed below:
    sirforms.err   Forms error output list
    sirsql.fmt     SQL messages file (binary)
    sir.ini        Initialisation file in the user's My Documents directory.
                   Under Unix the file .sir is in the user's home directory.
    sirforms.kmp   Forms default keymapping (binary)
    sir.lcn        Licence Control File
    sirout.lis     Output from a SIR/XS batch run
    sirsql.slg     SQL session log file (text)
    sirproc.srp    System Procedure File
    sirsql.wsp     SQL workspace file (binary)

The system also uses various extensions as standard as listed below:

.cmp              Forms commands
.exp              A text export of a file
.frm              Forms compiled file (binary)
.kmp              Keymap file (binary)
.lis              Generic listing (text output)
.pql              Text source of a VisualPQL program
.pwr              Output from a PWrite - text with PROCEDURE commands
.sch              Schema definition commands
.sr1 to .sr6      Database files 1 to 6. The files all have the database name followed by a suffix
                  .srn where:
                  1 & 2 are the description of the database;
                  3 is the data in the database;
                  4 is the procedures;
                  5 is the journal;
                  6 is any secondary indexes
.tbf              Tabfile
.txt              Generic text
SIR/XS reads and writes files in several directories.

Home directory

This is the directory where you install executable files (for example, C:\Sir under Windows or /bin/Sir under Unix).

SIR/XS reads most of the internal data files from the home directory and loads help pages from the help subdirectory of its home directory. If you write programs that use the SirAPI or SIR/XS Z-library (Host), you must place your executable into the home directory, because the software looks for its internal data files in the same directory where the main module is located.

Normally SIR/XS does not create or modify files in the home directory except when the licence file is created.

Add the SIR/XS home directory to your list of PATH directories if you prefer to start SIR/XS from the command line.

Under Unix the sirdir environment variable must point to the home directory to run SIR/XS properly.

You can change the file where the SIR/XS settings are stored. This is normally .sir or sir.ini, depending on the operating system. The execution parameter -ini:filename. If this parameter is used then it must be specified first.

You can specify an alternate location for the licence file. To do this you need to define an operating system environment variable named SIRLCN that has a filename as its value. This filename contains the licence details.

Current working directory

This is the directory that is current when you start SIR/XS from the command line or specified as a starting directory associated with the icon or menu item you use to start SIR/XS.

You are strongly discouraged from using the home directory as the current working directory.

It may be convenient to use your database directory as the current directory.

The current working directory is the default place to load and save files that are referred by local names. It is also used for temporary data files that are deleted automatically on exit.

Temporary and Scratch Files

During execution SIR/XS creates and deletes scratch files in the directory named in an operating system environment variable SIRTEMP, or, if that is not defined then in an operating system environment variable TEMP. If neither of these variables are defined then scratch files are written to the current directory.

SirForms Key Mapping

If you redefine and save the SirForms keymap, it is saved into the current working directory. When the program starts, it looks for the keymap file in the current directory. If there is no local keymap, SIRForms uses the system keymap from the home directory.

SQL workspace

SirSQL stores the workspace file in the current working directory.

homecontents start chapter top of pagebottom of pageindex

sir.ini or .sir initialisation file

The initialisation file contains a set of configurable parameters organised in sections. Each parameter is specified as a name followed by a value. The order of sections and the parameters in the file is not significant.

Each parameter has a default value that is used if the parameter is not defined. If a parameter name is not recognised, it is ignored.

Where a boolean value is expected, 1 stands for true, 0 - for false.

Some parameters can be altered during a session and the file is saved at the end of a session. If the file does not exists on startup, it is created at the end of the session. A single file is used by all SIR/XS products.

In the multi-user environment each user has his own initialisation file. Under MS-Windows the file sir.ini is created in the user's My Documents directory. Under Unix the file .sir is created in the user's home directory.

You can start sir using a different file by using the parameter -ini:filename on start up.

The file is in a format used for initialisation files on the specific operating system that is slightly different between Unix and Windows.

The following sections and parameters can be specified:

[sir]

General settings.

[master]

Master Settings.

[sql]

SQL Settings.

[odbc]

ODBC Settings.

homecontents start chapter top of pagebottom of pageindex

Running in Batch

You can run SIR/XS in batch mode by supplying an input file that contains commands. The commands on the file are read and executed and, when the end of the file is reached, execution terminates and control is returned to the operating system.

The IN= parameter on the execution command specifies the input file and determines that this is a batch run. You can run sets of commands from files in normal SIR/XS in which case control is returned to the user when end of file is reached.

The IN= filename can be stdin in which case the input is taken from the standard input stream. This could be the keyboard, a pipe or redirected input using "<". If input is to come from the keyboard you can also use the PROMPT execution parameter which will put a prompt to the screen.

Output generated by batch runs is written to files. Output includes the listing of commands, remarks and any messages. The OUT= parameter on the execution statement specifies the default output file. If a default output file is not named, then a standard file called SirOut.lis is created. For example;

SIR IN=PQLPROG.CMD  OUT=PQLPROG.OUT
Commands and procedures that do not specify filenames write to the output file. Commands that specify a filename write output to the specified file. Output can be assigned to a file in normal SIR/XS and everything that is normally written to the scrolled output window is written to the assigned output file.

The output produced may include listings of remarks and/or commands and this is controlled by PRINT BACK settings. The default settings in batch list remarks, messages and commands.

The OUT= filename can be stdout in which case the output is sent to the standard output. This could be the screen, a pipe to another command or redirected output using ">".

The standard SIR/XS executable can run in this batch fashion and, if this is done, it runs with a gui window and remarks are written to the scrolled output window so that you have an idea of progress.

A non-gui version of SIR/XS is also supplied as a separate executable - SIRbatch. This runs in a non-gui mode and can operate without a terminal window at all. All output is to files.
(N.B. Some functions of the system are expressly designed to operate interactively in a graphical environment and may cause problems if operated in any other way. If a batch run fails to operate in the expected fashion, run the same input file in standard SIR/XS to ascertain if this reveals the source of the problem.)

If a batch run executes VisualPQL programs that contain commands that require interactive input or output, the program is not executed. Similarly, commands that require use of an editor are flagged as an error in a batch run.

homecontents start chapter top of pagebottom of pageindex

Login Procedures

A login procedure can be executed when the system starts or when you attach to a new database. This is typically used to define an initial working environment. The commands in the login procedure might run one or more programs and define system options.

Login procedures are not run in batch executions.

Login procedures are members in the procedure file in the SYSTEM family. When the system is started in a normal fashion, if there is a START member in the system family, it is automatically executed before the main menu system starts.

To execute an alternative login procedure, specify the EX= execution parameter. The specified procedure must be in the SYSTEM family. If an EX= parameter is specified, the default login procedure is not executed.

If the initial procedure creates a WINDOW, it is then controlling the system. If there is no initial procedure or the initial procedure does not create a window, the system is started with the menu from the system procedure file SYSTEM.START. Since initial procedures are run before the windowing gui is active, they may not use dialogs. If you wish to have an initial dialog, invoke it from the INITIAL section of the WINDOW creation.

homecontents start chapter top of pagebottom of pageindex

Execution Parameters

The SIR/XS command line has various optional keywords and parameters. If an unrecognised parameter is found, it is taken to be a filename to be processed. This is held as the value of the global variable INFILE that can be accessed by your applications. Action is taken depending on the file extension as follows:
.srn is taken to be a database file and the file is opened
.exp is taken to be an Export file and the database is imported
.pql is taken to be a VisualPQL procedure and is run. Note that this is run after the menu system is started and cannot be used to define alternate menus.

.srm is taken to be a VisualPQL procedure and is run. Note that this is run before the menu system is started and can be used to define alternate menus. If the program does not define an alternate menu system then it cannot include gui commands or functions.

If a parameter starting with a * is found, it is taken to be a global variable and the following value is assigned to that global variable e.g *user=fred results in a global variable USER with the value "fred". If the value contains blanks or other special characters, enclose it in quotes.

Following is an alphabetical list of all the execution parameters.

-ini:filename
Sets user preferences file name (usually sir.ini or .sir). Note, if this parameter is used then it must be the first one on the command line.

CENY=yyyy
Sets the year used for calculation of the century when two digit years are input. When a two digit year is input, the system compares the input year with this parameter. If the parameter is less than the input, the century is set to the specified century. If the parameter is greater than or equal to the input, the century is set to the specified century plus 1.

The default is 1930.

To illustrate the calculation, assume the default setting of 1930. Then any input year in the range 00 - 29 is assigned a century of 20nn; any input year in the range 30 - 99 is assigned a century of 19nn.

All variables defined as dates are held internally as a number of days since the start of the Julian calendar on Oct 15 1582.

DB=database_name
Sets the initial database. If this parameter is omitted in an interactive run, the system starts without a database. If it is omitted in a batch run, the CONNECT DATABASE, or CREATE DATABASE command as appropriate can be used in the input command stream.

EL or ERRORS=n
Sets the task error limit. This determines how many error messages are displayed in a particular task. The default is 50.

EX=member_name
Specifies that the named member of the SYSTEM family is executed as soon as the system starts. Does not apply to batch runs.

F=family_name
Sets the default family; otherwise the SYSTEM family is the default.

FAMP=family_password
Specifies the default family password.

GRP=group_name
Specifies the group name used when connecting the tabfile specified by TFL=.

GPW=password
Specifies the group password used when connecting the tabfile specified by TFL=.

IN=filename
Specifies the name of the input command file for a batch run. Specifies that this is a batch run.

JOURNAL={ ON | OFF }
Turns journaling on or off for the database specified on the DB = parameter. If not specified, the journaling status set for the database is used. This option requires DBA security level.

M=member_name
Sets the default member name.

MEMP=member_password
Specifies the default member password.

MST=name
Specifies that this is a concurrent session and names the MASTER process to use. See Master for details on concurrency.

NAC
(No Auto Connect) stops the automatic connection of the tabfile specified by TFL=.

OUT=filename
Specifies the output file for batch run. Specifies that this is a batch run and must also have an IN = parameter.

P='directory'
Specifies a Prefix to use to locate the database. Specify the prefix in quotes terminated by a backslash. This accesses databases in other directories. This only applies to the database files. Other files, unless otherwise specified, are read from or written to the default directory.

PB =
[ON|OFF]
   [YES|NO]
   [[NO]CALL]
   [[NO]COMMANDS]
   [[NO]REMARK]
   [[NO]REPEAT]
   [[NO]SKIPPED]
   [[NO]TASK]
   [[NO]USER]
   
Specifies print back options. These are OFF by default for all options except REMARK and USER. In batch runs, these are ON by default for all options except TASK.

Specify PB multiple times to select or deselect multiple options. For example:

PB=CALL/ PB=REPEAT
ON or YES sets the default print back options ON. OFF or NO turns print back off completely.

CALL echoes all the lines included by CALL, INCLUDE and RUN commands.

COMMANDS echoes all commands.

REMARK writes remarks as tasks are executed.

REPEAT echoes all the commands generated by a DO REPEAT.

SKIPPED echoes commands that are skipped in CIF blocks.

TASK writes statistics of CPU usage and other activity. The default is NOTASK.

USER writes remarks detailing the SIR/XS attribute created when a new filename is encountered.

PROC=filename
Specifies a procedure file as the initial procedure file. The default is the procedure file of this database or SYSPROC if a database is not attached. Specify either a filename, such as 'C:\myproj\myproj1.sr4' or use SYSPROC to attach the SIR/XS system procedure file.

Note: When SIR/XS starts it runs the member SYSTEM.START from the procfile specified by this keyword. SYSTEM.START calls a main menu program such as SYSPROC.SYSTEM.MAINMENU to start an interactive session.

PS=n
Sets the number of lines per page when output is assigned to be written to a file. Paging can be suppressed by specifying PS = 0. The default is 60.

PW=database_password
Specifies the database password in conjunction with the DB= parameter.

PWD=n
Specifies the output width in characters. The default is 120.

QUIET
Suppresses initialisation and termination remarks.

RS=read_security_password
Used in conjunction with the DB = parameter, this specifies the database read security password. A read security level of 0 (zero) is assigned if no password or an incorrect password is supplied.

SIRUSER=name
Sets an alternate name which is logged to the journal as database updates are done. If this is not specified then the user name is got from system environment variable USERNAME or USER. Could be used as the basis for audit trails by individual users who update the database. Specify a SIR/XS name.

SL=n
Sets the default size of string variables implicitly declared during VisualPQL compilation or Schema definition. The default is 32.

SRTN=n
Sets the default number of records assumed by a sort. The number of records in a sort is assumed to be the number of records in the attached database. Specify an appropriate number if you are running without a database, using large tabfiles or generally need to set a different value.

TFL=tabfile_name
Specifies a tabfile to connect during initialisation. This becomes the default tabfile.

TFFN=filename
Specifies the operating system filename of the tabfile specified with TFL=. Specify this where the operating system filename is not the tabfile name with a .tbf suffix.

UPW=password
Specifies the user password used when connecting to the tabfile specified by TFL.

USER=name
Specifies the user name used when connecting to the tabfile specified by TFL.

WD=line_width
Sets the line width of the output file. The default is 121.

WL=n or WARNINGS=n
Sets a limit on the number of warning messages displayed by a task. The default is 50.

WS=write_security_password
Specifies the database write security level password. If no write security password is supplied or if an incorrect password is supplied, a write security level of 0 (zero) is assigned.

homecontents start chapter top of pagebottom of pageindex

Running from a web server

Web Server Support

This interface capability allows any web server that supports CGI to communicate with SIR/XS and invoke VisualPQL programs. These can then request data from the web server and send output back to the server that then appears on the user's web page. A format for some procedures, notably TABULATE, allows these to produce output in html format and send this directly back to the web. Output directed to the web server is written to a local file if the programs are run locally so that programs intended for use over the web can easily be developed and tested.

The following information is intended to provide some help for the users who have no prior experience with Web server software but want to use SIR/XS on their Web server.

Web servers' configuration includes a system of virtual directories available to the Web users. Sometimes this virtual file system may exactly match a subtree of your real file system, but it doesn't have to. Here is the example of a possible configuration under Windows NT:

    Dir         Virtual     Real path
    --------------------------------------
    Root        /           d:\www\home
    Images      /images     d:\www\images
    Scripts     /cgi-bin    d:\www\programs
Note, that in the virtual file space, the /images directory is a subdirectory of the root directory, but on this particular server the two physical directories have a common parent.

Assume that you have installed SIR/XS into c:\SIR/XS on your Web server. Include this directory into the PATH of a special user account used by the Web server to run the programs on the Web browser's requests or include it into the system-wide PATH, so it is available for all users.

After installation, the SIR/XS Web executable sirweb.cgi is installed into the SIR/XS's home directory. sirweb.cgi can be used on all platforms. However, if you use the MS Windows version of SIR/XS, you can also use sirweb.isa. Use the isa version instead of cgi if your Web server supports the ISAPI protocol, because it is faster than the traditional CGI access. Use the appropriate name in the default.htm (see below).

Make sure that the sirweb's access permissions allow it to be executed by the Web server process (or by anyone).

You may need to rename the file if your Web server insists on a particular file extension for a particular type of Web application. You need to specify to your web server that sirweb.cgi is a binary executable file (as opposed to Perl and shell scripts). For example, under MS Windows, it has a format of the normal Win32 EXE file. The second, Windows specific file, sirweb.isa has the Win32 DLL format.

Set up an appropriate html file in the appropriate directory. For example, default.htm in the Web server's root directory. The HTML references the installed sirweb executable as a simple link (URL) or as an action handler of the user input form. e.g.

<a href="http://b1/scripts/sirweb.isa">Click here to try the SIR Internet Database Server
or
<FORM ACTION="/scripts/sirweb.isa" METHOD=POST>

The sirweb executable supports GET and POST request methods and takes arbitrary number of CGI parameters. The sirapp parameter specifies the name of the VisualPQL program to run. This VisualPQL program can use the CGI functions to get any number of named, additional parameters. If you do not specify a value for sirapp the system uses SYSPROC.CGI.DEFAULT as the default member to run.

Other Issues

SYSPROC

If you are going to develop a system for CGI access, decide where your standard procedures are to be stored. When the interface starts up, you need to be able to run your initial procedures and there is no database attached. The most convenient place for this is SYSPROC.CGI.DEFAULT but be sure to have this saved as a file because the system procedure file is recreated when you re-install versions of SIR/XS.

Procedure References

Do not rely on the current state of the system for default procedure files, families or members. Other procedures may run and reset these so use fully qualified names.

Database and Tabfile Access

Do not rely on databases or tabfiles being connected or being the default. Specifically connect, disconnect databases or tabfiles as required and fully qualify all references.

Caching

To optimise performance, various components of the system maintain caches of previously accessed components. For the web server, these are pages, for SIR/XS, these are procedures. If you are developing and testing, then be aware that you may need to force the system to use a new copy of some procedure or page that you have just changed.

Directory and File References

In your VisualPQL programs, you create html that you send to the web server e.g.
program
write (CGI) '<CENTER>'
write (CGI) '<img src="/images/sirsplash.gif">'
write (CGI) '<h1>Welcome to the SIR Internet Database Server</h1>'
write (CGI) '</CENTER>'

write (CGI) '<FORM ACTION="/scripts/sirweb.isa" METHOD=POST>'
write (CGI) '<INPUT TYPE=HIDDEN NAME="sirapp" VALUE="sysproc.cgi.go">'

write (CGI) 'Application to run: <SELECT NAME="sirtxt">'
write (CGI) '<OPTION VALUE="hello" SELECTED>Simple Text'
write (CGI) '<OPTION VALUE="entry">Data Entry'
write (CGI) '<OPTION VALUE="excel">Excel'
write (CGI) '<OPTION VALUE="spss">SPSS'
write (CGI) '<OPTION VALUE="tables">Tabulations'
write (CGI) '<OPTION VALUE="splash">Welcome'
write (CGI) '<OPTION VALUE="freport">Report'
write (CGI) '</SELECT>'


write (CGI) '<INPUT TYPE=SUBMIT NAME= "sirmem" VALUE="Run"><p>'
write (CGI) '<INPUT TYPE=SUBMIT NAME= "sirmem" VALUE="fcache">'
write (CGI) '<INPUT TYPE=SUBMIT NAME= "sirmem" VALUE="entry">'
write (CGI) '<INPUT TYPE=SUBMIT NAME= "sirmem" VALUE="excel">'
write (CGI) '<INPUT TYPE=SUBMIT NAME= "sirmem" VALUE="Register">'
write (CGI) '</FORM>'
write (CGI) '<CENTER>'
write (CGI) '<img src="/images/SIRXS3.jpg" alt="SIR/XS">'
write (CGI) '</CENTER>'
end program
In the html, you may have references to other files such as images or output files that are accessed by other programs. Be aware that these references must be resolvable by the web server.

Any images that are referenced are typically in an images sub-directory from the web server root so ensure that any predefined images that you reference are in that directory. (If you use the DESCRIPTIVE procedure, this uses an image red.gif that can be found in the sir - images sub-directory and can be copied to the web server images directory.)

If you are writing files for your users to browse with other packages you need to send them to an appropriate directory and reference this in your html. e.g.

retrieval
process cases
. record is employee
c   Find last name
.   compute revname = trimlr(reverse (name))
.   compute len     = abs(srst(revname,' '))
.   compute lname   = reverse(sbst(revname,1,len-1))
. end record is
. process rec occup
.   get vars position startdat startsal division
.   perform procs
. end process rec
end cases
excel save file filename = 'd:\wwwroot\testex.dbf'
    / variables = lname division position startdat startsal
end retrieval
program
write (cgi) 'Your data is <a href="/testex.dbf"> here </a>'
end program

Content Type

By default the cgi output content type will be text/html. This can be changed by passing the variable "Content" containing the alternate type. For example:
http://www.sir.com.au/cgi-bin/sirweb.cgi?sirapp=cgi.hello&Content=text/plain

homecontents start chapter top of pagebottom of pageindex