No CHAIN with ALL, MERGE, DELETE, or Line # in Compiled Basic (65503)
The information in this article applies to:
- Microsoft QuickBASIC 4.0
- Microsoft QuickBASIC 4.0b
- Microsoft QuickBASIC 4.5
- Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
- Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b
- Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.0
- Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.1
- Microsoft GW-BASIC 3.2
- Microsoft GW-BASIC 3.22
- Microsoft GW-BASIC 3.23
This article was previously published under Q65503 SUMMARY
The <filespec> parameter of the CHAIN statement is a string expression
that identifies the program to which control is passed. In compiled
Basic, the filespec may include a path specification, but does not
allow any other options. This differs from the GW-Basic and BasicA
interpreters. QuickBasic does not support the ALL, MERGE, DELETE, or
line-number options of the CHAIN statement available in BasicA and
GW-Basic. The ALL option, however, can be simulated by using
QuickBasic's COMMON statement to share variables between CHAINed
programs.
MORE INFORMATION
GW-Basic and BasicA interpreter programs assume the extension xxxx.BAS
on a CHAINed-to file. Basic compiler 6.00 and 6.00b, Basic PDS 7.00
and 7.10, and QuickBasic 4.00, 4.00b, and 4.50 compiled programs
assume an extension of xxxx.BAS within the QB.EXE or QBX.EXE
environment, or an extension of xxxx.EXE if compiled and run outside
the environment. (In the QB.EXE environment of QuickBasic 2.00, 2.01,
or 3.00, you can CHAIN only to xxxx.EXE files, so you must either omit
the filename extension or specify xxxx.EXE.) To simplify using the
CHAIN filespec argument, just omit the name extension on the filespec,
which works the same in all versions of compiled or interpreted Basic.
Compiled Basic does not support the ALL, MERGE, DELETE, or line-number
options of the CHAIN statement available in BasicA or GW-Basic. In
GW-Basic and BasicA programs, CHAIN with ALL specifies that all
variables in the current program are passed to the CHAINed-to program.
This effectively makes every variable COMMON to each program. CHAIN
with MERGE leaves any OPENed files open, preserves the current OPTION
BASE setting, and merges new line numbers from the CHAINed program by
numerical position. Using CHAIN with MERGE also means that any DEFINT,
DEFSNG, DEFDBL, DEFSTR, or DEF FN statement need not be restated in
the CHAINed program. The CHAIN with DELETE allows the programmer to
delete a range of line numbers from the CHAINing program to make room
for the new lines in a CHAIN MERGEd program. Without the line-number
option, execution always starts at the beginning of the program.
The interpreter's CHAIN ALL option can be simulated by using compiled
Basic's COMMON blocks.
Files can be left open across a chain if you compile the program to
require the run-time module (compile without /O).
For more information on the syntactical differences between QuickBasic
and GW-Basic/BasicA programs, see Page 312 in the "Microsoft
QuickBasic 4.5: Programming In Basic" manual for QuickBasic version
4.50.
Modification Type: | Minor | Last Reviewed: | 8/16/2005 |
---|
Keywords: | KB65503 |
---|
|