Skip to content

PRM Statement

PRM statements are optional statements that define Thoroughbred Basic environment parameters. These statements tell Thoroughbred Basic how to interpret certain situations and how to change its interface with the operating system. Beginning with Thoroughbred Basic version 8.5.0 PRM statements can also be placed in the IPLPRM global parameter file.

Note: The IPLPRM can be disabled by setting the IPLPRM variable to N on individual systems. Example: IPLPRM=N

PRM statements must appear after the PTN statement and before any DEV statements. There is no limit to the number of PRM lines you can specify.

You can place multiple PRM statements on the same line, but you must use a comma to separate one statement from the next. Starting with Thoroughbred Basic 8.2, PRM statements that contain hyphenation can use either a dash or an underscore. For example: PRM LONG-PROMPT can also be specified as PRM LONG_PROMPT.

The PRM statement has the following format:

PRM clause1[[,PRM clause2] . . . ]

Valid values for PRM clauses are listed in the following section.

ALLOC
Used by some file creation directives to reallocate physical disk storage. It causes the physical file to be allocated and erased to null when a CREATE directive is issued. Since UNIX allocates disk file space as it is used, this parameter ensures that physical space is available for the key area when the file is created.

Running out of space when WRITEing a data record generates an ERR=02 and may result in the loss of a data record. Running out of space in a keyblock area could cause the loss of key pointers.

BASE-YEAR=year
Specifies a base year for 00, a two-digit date. In most cases, the value for year is 1800 or 1900. The default is 1900.

This PRM statement can help you circumvent problems associated with century rollover, specifically the transition from 1999 to 2000. For more information on PRM BASE-YEAR please refer to Thoroughbred’s YEAR 2000 White Paper.

BTRIEVE
On systems that support the BTRIEVE format, PRM BTRIEVE enables Thoroughbred Basic to create files in BTRIEVE format. This statement does not affect files that have already been saved in another format.

PRM BTRIEVE and PRM COBOL are mutually exclusive. If both PRM statements are specified, or if BTRIEVE is not active, Thoroughbred Basic will generate an error.

CMASK
Allows you to set the default values for CMASK for the entire session.

cmask_arg is a two part field and must be enclosed in double quotes. The first character must be either a decimal point (.) or a comma (,) indicating the default to be used in numeric values. The remainder of the string is the value to be substituted for dollar signs. It can be from 1 to 8 characters in length. This PRM can be used with the TS ODBC DataServer and also in Basic. See SET CMASK in the Basic Language Reference (R-Z).

IPLINPUT PROGRAM
PRM CMASK “,” SET CMASK “.=,”
PRM CMASK “.YEN” SET CMASK “$=YEN”
PRM CMASK “.” SET CMASK “.=.\
PRM CMASK “,YEN” SET CMASK “.=,\
COBOL
Specifies that MSORT files will be created in Micro Focus COBOL format. Thoroughbred Basic can read and write these files.

PRM COBOL and PRM BTRIEVE are mutually exclusive. If both PRM statements are specified, Thoroughbred Basic will generate an error.

For more information on the MSORT directive, please refer to the Thoroughbred Basic Language Reference.

CREATWDBATTR
Helps establish the interface between Thoroughbred products and ORACLE, MS SQL Server or MySQL databases. It specifies that new tables will be created using the attributes from the system dictionary.

For more information on the PRM CREATWDBATTR statement, please refer to TS DataServer for Oracle, TS DataServer for MS SQL Server or TS DataServer for MySQL documentation.

CVTSTRIP
Removed the unconditional masking to 7-bit characters by the CVT ( ) function. This can be stored by using PRM CVTSTRIP.
DEBUG=progname
This PRM statement defines a program you can use to debug Thoroughbred Basic applications.

If this statement is specified and you use the Ctrl-B keystroke to interrupt program execution, progname will execute. When a debugging program exists, the interrupted Thoroughbred Basic program will continue to execute. The value of the CTL system variable is set to -99,999.

If this statement is not specified and you use the Ctrl-B keystroke to interrupt program execution, Thoroughbred Basic will display the following message:

Return to UNIX (Y/N)?

Type either Y for yes or N for no and press the Enter key.

For more information on the CTL system variable, please refer to the Thoroughbred Basic Language Reference.

DISABLE
Specifies that a logical directory can be disabled by the DISABLE,LOCAL directive even if the directory contains open files.

If PRM DISABLE is not specified, the attempt to disable a directory that contains open files generates ERROR 0.

For more information on the DISABLE directive and its LOCAL parameter, or on the OPEN directive, please refer to the Thoroughbred Basic Language Reference.

DONTCHECKTEXT
This PRM statement may be useful to developers who use special characters that cannot be printed in English. Printable characters range from $20$ to $7E$ and the Thoroughbred portable graphics characters range from $C0$ to $CF$.

The WINDOW PUT directive maps unprintable characters onto the * (asterisk), which is a printable character. If PRM DONTCHECKTEXT is specified, the WINDOW PUT directive does not map unprintable characters onto the *. The PRM DONTCHECKTEXT statement is available starting with Thoroughbred Basic 8.1.

DSTPRE2007
The begin and end dates for Daylight Saving Time were changed in 2007 and included in Basic version 8.6.0. This PRM will force the pre-2007 dates of the first Sunday in April through the last Sunday in October at 2 AM.
EDIT=progname
Specifies the name of the program editor used to edit Thoroughbred Basic programs. The EDIT command will run this program. The default is *EDIT*.

For more information on *EDIT*, please refer to the description of the EDIT full-screen directive in the Thoroughbred Basic Language Reference or the Thoroughbred Basic Utilities Manual.

EDITF=progname
Specifies the name of the program editor used to edit Thoroughbred Basic programs. The EDITF command will run this program. The default is 8EDITF.

The 8EDITF utility is available starting with Thoroughbred Basic 8.1.2. It is a full-screen program editor that enables you to select the level of formatting, use the editing keys, and read Thoroughbred Basic on-line documentation. In order to use EDITF, you must have installed Thoroughbred Dictionary-IV and set up your terminal for Thoroughbred Basic Windows For more information on 8EDITF, please refer to the description of the EDITF full-screen directive in the Thoroughbred Basic Language Reference or the Thoroughbred Basic Utilities Manual.

EDITPUBLICS
When EDITPUBLICS IS "ON" an untrapped ESC key or an untrapped error will halt a public program at the current line in console mode. When EDITPUBLICS is "off" untrapped errors and the ESC key are reported as an error on the CALL statement.

For example: If you get an ERROR 42 on a CALL statement and you know the problem is in the Public Program, you can use EIDTPUBLICS. When you use this PRM while developing and testing, the Public Program will stop where the error occurred. You can then edit the program and save it.

ERRMASK
Generates an error whenever data length exceeds the length of a print mask.

Thoroughbred Basic tries to print data when a print mask is specified, even when the data exceeds the capacity of the mask.
When this happens, Thoroughbred Basic does not generate a 40-series error. PRM ERRMASK causes Thoroughbred Basic to generate the error whenever the data exceeds the mask.

FULL-COMPARE
Specifies that all numeric comparisons in Thoroughbred Basic are made at full FLOATING POINT.

If this statement is not specified, and if PRECISION is set to 2, then 1.005 tests equal to 1.006 because both values equal 1.01 when PRECISION is set to 2. If PRECISION is set to 3 or higher, including FLOATING POINT, then the test returns a not-equal condition.

If PRM FULL-COMPARE is specified, the test returns a not equal regardless of the current setting of PRECISION. Besides a numeric comparison in an IF/THEN/ELSE/FI Directive, other situations which are sensitive to PRM FULL-COMPARE are the FOR/NEXT test for loop termination, MIN/MAX testing, INPUT of a numeric variable with verification, and WHILE/WEND loop control testing if the WHILE condition involves a numeric test.

For more information on PRECISION and FLOATING POINT, and on the directives and functions mentioned in the preceding paragraph, please refer to the Thoroughbred Basic Language Reference.

IEEESWAP
This statement changes the natural ordering of the bytes in a value defined using the IEEE standard to an ordering that is opposite.

The STR and NUM functions enable you to specify NTP=8, for IEEE single precision floating point, or NTP=9, for IEEE double precision floating point. The numbers are managed according to the natural byte ordering of the machine. PRM IEEESWAP enables you to WRITE files with IEEE numbers on one machine and READ the file on another machine that uses reverse byte ordering.

This parameter is available starting with Thoroughbred Basic 8.2.

IF47
Suppresses error 47 reporting within an IF statement. An error 47 causes the IF statement to be false rather than reporting the error. For example:
00100 LET A$ = "";
IF A$(1,1) = "X" THEN
PRINT "True"
ELSE
PRINT "False"
FI

If PRM IF47 is active the code above prints False. If PRM IF47 is not active the above code reports an error 47 on line 00100.

For more information on error 47 please refer to the Thoroughbred Basic Developer Guide.

INPUTVER
This statement enables verification of decimal digits specified in the range-value of the INPUT directive. For more information on the INPUT directive, please refer to the Thoroughbred Basic Language Reference.
IPCKEY=xx
Enables you to specify a decimal Inter-Process Communication Key when Thoroughbred Basic must make shared memory facilities available to another product. Thoroughbred Basic uses a shared memory segment for ghost tasks.

The decimal number you can specify can be established only after you find the relevant information in the documentation for the operating system and the other product that will use shared memory.

LISTPAREN
This statement causes Thoroughbred Basic to print parentheses to enclose the dimension sizes for numeric arrays created by the DIM directive. The default is to use the bracket characters.

Prior to Thoroughbred Basic 8.0, parentheses were used to enclose dimension sizes of numeric arrays. Currently, parentheses are only used to enclose variable names used by the string version of the DIM directive. This convention makes it easier to distinguish the numeric array version of the directive from the string version of the directive.

The PRM LISTPAREN statement his has no impact on program execution.

LOADTRIGGER=
Besides LOAD, you can also activate a trigger using the IPLINPUT file.
PRM LOADTRIGGER=trigger-definition-name

There is no option for determining which Basic method will be used as the lead trigger program. When a trigger request is received by Basic, it invokes “OOIO”. The necessary information about the request is passed to “OOIO” and it is then the responsibility of “OOIO” to analyze the data and determine what action is appropriate.

For more information on the DIM directive, please refer to the Thoroughbred Basic Language Reference.

LOCKBYCHANNEL
Restores the functionality of OPEN and LOCK commands that was available prior to Thoroughbred Basic 8.4.0. This PRM statement is available in Thoroughbred Basic 8.4.0 and above.

As default behavior, Thoroughbred Basic 8.4.0 and higher versions enable you to lock a channel to a file you have opened one or more times or open a file you have self-locked. The LOCK directive will prohibit other Thoroughbred Basic users from opening the file, but you can open the file. However, you cannot lock the file two or more times.

Previous versions of Thoroughbred Basic prohibited any user from opening a locked file, including the user who locked the file. To restore this functionality, use the PRM LOCKBYCHANNEL statement.

For more information on the OPEN, LOCK, and UNLOCK directives, please refer to the Thoroughbred Basic Language Reference.

LONG-PROMPT
Changes the screen prompt to display the name of the current program, a space character, the last generated Thoroughbred Basic error code, and the > character. The default is the > character.

The prompt specified by the PRM LONG-PROMPT statement may be helpful when you debug a Thoroughbred Basic program using single-stepping mode.

For more information on debugging, please refer to the chapter on Program Control in the Thoroughbred Basic Developer Guide.

LONGVAR
Sets the default syntax checker to long variable name mode, which enables variable names to be up to 33 characters long. Starting with Thoroughbred Basic 8.0, this is the default.

For more information on variable names, please refer to the descriptions of the LONGVAR and SHORTVAR directives in the Thoroughbred Basic Language Reference.

**MSSQL-LOGIN=**login/password Helps establish the interface between Thoroughbred products and

MS SQL Server databases. If multiple MS SQL Servers are configured, and the login and password are identical for each server, the PRM MSSQL-LOGIN statement can replace multiple login and password specifications in DEV statements.

login
is the MS SQL Server login used to connect to the database.
/
separates ID from password.
password
is the MS SQL Server password used to connect to the database.

For more information on DEV statements, please refer to the subsection on the DEV statement in this chapter. For more information on the PRM MSSQL-LOGIN statement, and on DEV statements relevant to TS DataServer for MS SQL Server, please refer to TS DataServer for MS SQL Server documentation.

MYSQL-LOGIN=login/password
Helps establish the interface between Thoroughbred products and MySQL databases. If multiple MySQL servers are configured, and the login and password are identical for each server, the PRM MYSQL -LOGIN statement can replace multiple login and password specifications in DEV statements.
login
is the MySQL login used to connect to the database.
/
separates ID from password.
password
is the MySQL password used to connect to the database.

For more information on DEV statements, please refer to the subsection on the DEV statement in this chapter. For more information on the PRM MYSQL-LOGIN statement, and on DEV statements relevant to TS DataServer for MySQL, please refer to TS DataServer for MySQL documentation.

NEWDATE7
The Dictionary Date Type 7 stores the year as a one-byte binary offset from 1900. The year 2038 will be represented as $8A$ that is also the system default field separator. When PRM NEWDATE7 is used, the year 2038 and after will be incremented by one to avoid the conflict. The value $8A$ will not be recognized as data in Date Type 7 computations.

PRM NEWDATE7 is available starting with Thoroughbred Basic 8.8.3.

NOBANNER
Turns off the display of the Thoroughbred Basic banner that occurs when a user starts Thoroughbred Basic. The default is to allow Thoroughbred Basic to clear the screen and display the banner.

PRM NOBANNER is available starting with Thoroughbred Basic 8.2.

NOLABELERR
The FIXUP directive produces ERR=21 for a reference to a LABEL that does not exist in the program. PRM NOLABELERR disables the test. See also the ERRBUF system variable.

PRM NOlabelerr is available starting with Thoroughbred Basic 8.8.2.

NOROUND
Specifies that numeric comparisons be made at full value. These comparisons are not subject to the current value set by the PRECISION directive. Numbers that need rounding are rounded at the end of the mathematical equation, not during the intermediate stages of numeric processing.

PRM NOROUND enables you to manage numeric comparisons in a way consistent with the method used in some other implementations of a business BASIC language.

For more information on the PRECISION directive, please refer to the Thoroughbred Basic Language Reference.

NOSTRERR
Disables the error 41 and error 43 conditions returned by STR(,NTP=,SIZ=) when validating numbers.
NOTRANS
Enables you to use transaction-processing directives without having to use any of the transaction processing facilities. This helps you produce portable code without affecting execution speed.

Program execution is affected in the following ways:

  • The LOG OPEN directive can be executed. However, syntax and options are not checked. The log file and the Master Log are not opened.
  • The TRANSACTION BEGIN directive simulates a TRANSACTION BEGIN, but no entries can be made to the log file. All records changed after the TRANSACTION BEGIN directive are locked, even though they cannot be entered into the log file.
  • The COMMIT and ROLLBACK flush out the system buffers. All records that were locked become unlocked. Executing the ROLLBACK directive will generate an ERR=13 because ROLLBACK cannot execute when PRM NOTRANS is set.
  • The LOG CLOSE directive clears any outstanding internal flags.

For more information on transaction processing, please refer to the Thoroughbred Basic Developer Guide. For more information on the directives mentioned above, please refer to the Thoroughbred Basic Language Reference.

PRM NOTRANS is available starting with Thoroughbred Basic 8.2.

NOWINCLOSE
Prevents a user from exiting Thoroughbred Basic by pressing the X system box in the upper right-hand corner of the window.

PRM NOWINCLOSE is valid on systems running Thoroughbred Basic under Microsoft Windows.

NUMERR26
This statement causes the NUM() function to return error 26 if imbedded blanks are found in the input string. The default is to eliminate imbedded blanks.
ODBCFS
Starting with TS ODBC DataServer 8.8.0, processing of File Suffix Methods is disabled. This statement enables the processing.
OFF-ERR127
Specifies that Thoroughbred Basic does not set the ERR system variable to 127 when the Escape key is pressed. The default is to set ERR to 127.

This statement enables you to press the Escape key and obtain the last generated error code contained in the ERR variable. This feature can help you debug Thoroughbred Basic programs.

For more information on the ERR system variable, please refer to the Thoroughbred Basic Language Reference.

PRM OFF-ERR127 is available starting with Thoroughbred Basic 8.1.

OLDLIKE
A change was included in release 8.8.1 to improve performance of a LIKE comparison when consecutive asterisks are used. Specify PRM OLDLIKE to disable the change.
OLDTRIGGERS
This statement disables enhancements to the 3GL Triggers interface introduced in version 8.8.0. This is intended as a temporary solution until a new version of OOIO is installed.
OPENLIB=file,channel
Opens the specified library on the specified channel. This statement causes Thoroughbred Basic to behave as if the following code were executed:
OPEN (channel, OPT="OLIB") filename

If the channel is missing or invalid, if the file is not found, or if the file is not a library, an error occurs and Thoroughbred Basic does not run.

This PRM statement is available starting with Thoroughbred Basic 8.2.

**ORACLE-LOGIN=**login/password Helps establish the interface between Thoroughbred products and

ORACLE databases. If multiple ORACLE servers are configured, and the login and password are identical for each server, the PRM ORACLE-LOGIN statement can replace multiple login and password specifications in DEV statements.

login
is the ORACLE login used to connect to the database.
/
separates ID from password.
password
is the ORACLE password used to connect to the database.

For more information on DEV statements, please refer to the subsection on the DEV statement in this chapter. For more information on the PRM ORACLE-LOGIN statement, and on DEV statements relevant to TS DataServer for Oracle, please refer to TS DataServer for Oracle documentation.

ORA_DONTWRITENULLS
Helps establish the interface between Thoroughbred products and ORACLE, MS SQL Server or MySQL databases. The PRM ORA_DONTWRITENULLS statement specifies that null data is changed physically when the data is returned to a Thoroughbred Basic application.

The PRM ORA_NVLNULLS statement provides an alternate way of processing null data.

For more information on these PRM statements, please refer to TS DataServer for Oracle, TS DataServer for MS SQL Server or TS DataServer for MySQL documentation.

ORA_NVLNULLS
Helps establish the interface between Thoroughbred products and ORACLE, MS SQL Server or MySQL databases. The PRM ORA_NVLNULLS statement specifies that null data is changed logically when the data is returned to a Thoroughbred Basic application.

The PRM ORA_DONTWRITENULLS statement provides an alternate way of processing null data.

For more information on these PRM statements, please refer to TS DataServer for Oracle, TS DataServer for MS SQL Server or TS DataServer for MySQL documentation.

PGCHARBASE=x
Specifies that the business graphics characters are based on the hexadecimal character $x0$. Valid values for x are 8, 9, A, B, C, D, E, and F. The default is C.

Thoroughbred Basic uses 16 standard business graphics characters. Their hexadecimal values range from $x0$ through $xF$. These characters are available starting with Thoroughbred Basic 8.1B2.

PRINTRECORD
When a PRINT RECORD directive is outputting to a file on disk, this statement causes a Line Feed character (Hex 0A) to be appended to the assembled record. For more information on the PRINT directive, please refer to the Thoroughbred Basic Language Reference.
PUBLICS=nnn
Specifies the maximum number of Thoroughbred Basic public programs that can be loaded into memory. Valid values range from 5 through 200. The default is 100.

The ADDR directive loads public programs into memory. The DROP and DROP ALL directives remove public programs from memory. For more information on public programs, please refer to the Thoroughbred Basic Developer Guide. For more information on the directives mentioned above, please refer to the Thoroughbred Basic Language Reference.

QUIT=n
Changes the control key sequence that halts Thoroughbred Basic to Ctrl-n. Valid values are integers. The default is 2, which enables the Ctrl-b keystroke sequence to halt Thoroughbred Basic.

For example, if you specify PRM QUIT=3, the Ctrl-c keystroke sequence will halt Thoroughbred Basic.

You can prevent users from accidentally halting a Thoroughbred Basic task by specifying PRM QUIT=0. In most cases, no key sequence can produce the 00 (null) character.

READONLY
Specifies that Thoroughbred Basic programs can READ data records made unavailable through an EXTRACT directive issued by another task. However, a WRITE directive cannot write data to the record until that data record is released.

PRM READONLY also enables the current task to READ a record that the same task made available through an EXTRACT directive that specified a different channel.

Previously, this feature was not available on systems that use mandatory locking. Starting with release level 8.40, newly created data files will use a common locking mechanism so that systems that do not support advisory locking can use the PRM READONLY statement.

For more information on the directives mentioned above, please refer to the Thoroughbred Basic Language Reference.

RMS sd,sm,ss
On systems that support RMS formats, PRM RMS enables Thoroughbred Basic to create, read, or write files in RMS formats. To specify default RMS file structures, you can set the following parameters:
sd
is the sector-number for DIRECT files. Valid values are 0 through 5, which stand for sector-numbers 0 through -5. The default is 0.

To override this value, specify a value for the sector-num parameter in the DIRECT directive.

sm
is the sector-number for MSORT files. Valid values are 0, 1 and 7, which stand for sector-numbers 0, -1 and –7. The default is 0.

Specifying a 7 will create a TVMsort file, which is a special form of MSORT file that allows the use of field-separated key data fields in a high-speed RMS file.

To override this value, specify a value for the sector-num parameter in the MSORT directive.

ss
is the sector-number for SERIAL files. Valid values are 0 through 6, which stand for sector-numbers 0 through -6. The default is 0.

To override this value, specify a value for the sector-num parameter in the SERIAL directive.

For more information on PRM RMS, RMS file structures, and how to use Thoroughbred Basic on systems that contain RMS, please refer to the on-line release notes. For more information on the Thoroughbred Basic directives mentioned above, please refer to the Thoroughbred Basic Language Reference.

If PRM RMS is not specified, Thoroughbred Basic will assume that files are managed using Thoroughbred formats.

SENTINEL
Specifies that Thoroughbred Basic use the standard method to control access to DIRECT and SORT files.

On some UNIX systems with Symmetric Multiprocessing (SMP) PRM SMPLOCK may be the default. This PRM statement specifies an alternate method to control access to DIRECT and SORT files.

To override PRM SMPLOCK, specify PRM SENTINEL.

SEP=nn
Sets the value of the field separator character, which is contained in the SEP variable. Valid values are two hexadecimal characters. The default is 8A.

If an invalid value is specified, Thoroughbred Basic will display an error message and it will not execute the command.

For more information on the SEP variable, please refer to the Thoroughbred Basic Language Reference.

This statement is available starting with Thoroughbred Basic 8.2.

SERIAL-EOF
Disables the automatic expansion of SERIAL files. If Thoroughbred Basic reaches the end of a file while using the WRITE directive to add data to a SERIAL file, it will generate an ERR=02.

End of file conditions can occur when a program tries to add more than the number of records specified for the file. It can also occur when a program tries to add a record that is larger than the amount of available space in the file. The total amount of space specified for the file is determined by the number of records multiplied by the average size of a record.

For more information on SERIAL files and the WRITE directive, please refer to the Thoroughbred Basic Language Reference.

PRM SERIAL-EOF is available starting with Thoroughbred Basic 8.2.

SHORTDEC
In release 8.8.3 a change was made to the STR function to align the decimal point when the number of decimal places in a result in less than the precision value. PRM SHORTDEC disables the change.
SHORT-ERROR
Specifies how errors are displayed. If this statement is in effect, and an untrapped error causes Thoroughbred Basic to go to Thoroughbred Basic Console Mode, only the portion of the code where the error occurred will be displayed. The default is to display the entire statement.

For more information on Thoroughbred Basic Console Mode, and on how Thoroughbred Basic processes errors, please refer to the Thoroughbred Basic Developer Guide.

PRM SHORT-ERROR is available starting with Thoroughbred Basic 8.2.

SHORTVAR
Sets the default syntax checker to short variable name mode, which enables variable names to be up to 2 characters long. The default is long variable name mode, which enables variable names to be up to 33 characters long.

When SHORTVAR is active, all Thoroughbred Basic Console
Mode statements, and all EXECUTE and MERGE directives issued through Thoroughbred Basic Run Mode, are checked to ensure that only short variable names are used. SHORTVAR only allows the directives, functions, and variables that existed prior to
Thoroughbred Basic 8.0. It does not affect execution of existing programs that contain Thoroughbred Basic 8.0 features and long variable names.

The LONGVAR directive or PRM LONGVAR enable you to use short or long variable names and make it easier to use new Thoroughbred Basic features. LONGVAR is the default.

For more information on variable names, please refer to the descriptions of the LONGVAR and SHORTVAR directives in the Thoroughbred Basic Language Reference. Please refer to the description of PRM LONGVAR in this subsection.

PRM SHORTVAR is available starting with Thoroughbred Basic 8.0.

SLEEPLOCK
Specifies that Thoroughbred Basic can use an alternate method to gain access to a locked record.

When Thoroughbred Basic issues a test lock UNIX system call and the request cannot be satisfied immediately, the call returns. Under this alternate method, an unsatisfied request causes Thoroughbred Basic to suspend execution for one second, then try again. If the lock request is unsatisfied after 15 attempts, an ERR=0 is returned to the Thoroughbred Basic program.

PRM SLEEPLOCK is useful on a multi-processor system where many users must gain access to the same set of files. However, this alternate method may decrease system performance.

SMC create,search
Provides support for previous SMC Basics on DEC VAX machines. It enables you to specify whether the .SMC extension is appended to file names when you create or search for files.

To define when the extension is appended, specify the following parameters:

create
specifies whether the .SMC extension is added when Thoroughbred Basic creates a file. Valid values are:

0 means that the extension is never appended.

1 means that the extension is always appended.

search
specifies whether the .SMC extension is added when Thoroughbred Basic searches for a file. Valid values are:

0 means the extension is never appended. If the create parameter is 1, do not specify this value for search.

1 means the extension is always appended. If the create parameter is 0, do not specify this value for search.

2 means that Thoroughbred Basic will search for the file without adding the extension. If the file is not found, it will search for the file by adding the extension.

3 means that Thoroughbred Basic will search for the file by adding the extension. If the file is not found, it will search for the file with no extension.

PRM SMC has no effect on files that already have file extensions. For more information on PRM SMC, please refer to the on-line release notes.

SMPLOCK
Specifies that Thoroughbred Basic use an alternate method to control access to DIRECT and SORT files.

On some UNIX systems with Symmetric Multiprocessing (SMP) this method can speed the removal and addition of keys. The gains provided by this PRM statement can be determined by monitoring system performance.

PRM SMPLOCK must be added to the IPLINPUT files of all users.

For versions of Thoroughbred Basic that have PRM SMPLOCK as the default, PRM SENTINEL can be used to specify the standard method of access control.

SOCKETPOLLRATE
Only affects Telnet connections to the Windows Basic. The value supplied adjusts the rate that Basic checks the connection for an ESC or CTL-B entered by the user.

By default, the connection is checked after every 1000 directive is

th

executed. During development it may be desirable to use a lower number so that an ESC is recognized immediately. Performance can be improved significantly by using higher values, but with a corresponding loss of sensitivity to ESC and CTL-B.

SQL_NUMERIC_NULLS
Helps establish the interface between Thoroughbred products and ORACLE, MS SQL Server or MySQL databases. The PRM SQL_NUMERIC_NULLS statement specifies that if the data for a numeric field is sent over from a Thoroughbred Basic application as all spaces, it will be written to the database as a null value.

For more information on these PRM statements, please refer to the TS DataServer for Oracle, TS DataServer for MS SQL Server or TS DataServer for MySQL documentation.

STACK=nnnnn
Specifies the maximum number of bytes the Return Address Stack can use. Valid values are integers. The default is 8,192.

The Return Address Stack contains information used to direct program flow and execution. If you use a great number of nested GOSUB, WHILE/WEND, or FOR/NEXT directives, you may need to increase the number of bytes in the stack.

For more information on the Return Address Stack, and on the directives mentioned above, please refer to the Thoroughbred Basic Language Reference.

This statement is available starting with Thoroughbred Basic 8.0.

SYSTEM=filename
Causes the SYSTEM directive to execute a file. A valid value is the name of an existing file.

For example, you can prevent access to UNIX from a Thoroughbred Basic program by specifying a file such as /usr/prevent/entry.

For more information on the SYSTEM directive, please refer to the Thoroughbred Basic Language Reference.

TPLOGNAME=string
If a TRANSACTION BEGIN is executed with no LOG OPEN, then a default LOG OPEN is performed using the values in PRMTPLOGNAME. The default value for TPLOGNAME is "TPLOG."+TaskId. The maximum length of string is 128.

For more information on TPLOGNAME, please refer to LOG OPEN in the Thoroughbred Basic Language Reference.

TPLOGPATH=string
If a TRANSACTION BEGIN is executed with no LOG OPEN, then a default LOG OPEN is performed using the value in PRMTPLOGPATH. The default value for TPLOGPATH is /user/lib/basic/TPLOGS or on your Windows home path. The maximum length of string is 128.

For more information on TPLOGPATH, please refer to LOG OPEN in the Thoroughbred Basic Language Reference.

UNIQUE-KEYS
Used in the client Basic IPLINPUT file. Treats all secondary sorts unique by adding the primary sort to the end of all the secondary sorts when the various READ statements are translated to their equivalent SELECT statements on the server.
UPPER
Transforms all Thoroughbred Basic Console Mode keyboard input not enclosed by quotation marks into uppercase characters.

Thoroughbred Basic is case sensitive. All syntax requires uppercase. UNIX normally uses commands in lowercase. PRM UPPER can cause problems when a programmer must move between Thoroughbred Basic and the resident operating system.

PRM UPPER causes problems when you use the EDIT line directive to modify a program line that contains lowercase characters. This statement can cause problems when you refer to format or data names that contain lowercase letters.

For more information on the EDIT line directive, please refer to the Thoroughbred Basic Language Reference.

VAR-NOTSET-ERR
Specifies that a reference to a variable before a value has been assigned to the variable will generate ERR=22.

PRM VAR-NOTSET-ERR is available starting with Thoroughbred Basic 8.2.

WAITLOCK=nn
Specifies the amount of time that Thoroughbred Basic will wait for an extracted record to become available. The READ, EXTRACT, or other directives can extract a record from a file. The nn parameter specifies the number of seconds. Valid values range from 0 through 60. The default is 15 seconds.

PRM READONLY overrides PRM WAITLOCK.

For more information on PRM READONLY, please refer to the description in this subsection. For more information on the READ or EXTRACT directive, please refer to the Thoroughbred Basic Language Reference.

This statement is available starting with Thoroughbred Basic 8.1.2.

WEBIOLOG=filename
When Thoroughbred Basic is started as a network listener, this PRM can be used to specify a file to record requests and responses. Data is preceded by an ASCII header SSSSSSFPPPPPPPP where SSSSSS is the total length F is “R” for received or “S” for sent, and P…P is the port number. The file is opened and closed for each record allowing the file to be created as needed.

For more information, please refer to the OPEN directive in the Thoroughbred Basic Language Reference.

WINDOWCOLORS=nnn
Enables you to specify background and foreground colors for the terminal Base Window. nn is a single decimal value or two added decimal values as described for the WINDOW COLORS directive. Hex values are not allowed. The default value is 15 for a black background with white characters. This PRM is ignored if a terminal table is selected that does not specify color support

For more information on the WINDOW COLORS directive, please refer to the Thoroughbred Basic Language Reference.

WINDOWCOUNT=nnn
Enables you to specify the maximum number of Thoroughbred Basic Windows. Valid values range from 5 through 200. The default is 50.

Because Thoroughbred Basic allocates memory for the number of Thoroughbred Basic Windows specified by this statement, you may want to save memory by specifying a smaller number.

For more information on Thoroughbred Basic Windows, please refer to the Thoroughbred Basic Developer Guide.

XCALLHEAPSIZE=nn
Enables you to specify the size of the memory heap used by XCALL when calling external programs. Valid values range from 4 through 64. The default is 12.

From the Customization and Tuning Guide: System Files, version 8.9.1. Open this page in the PDF