bas7advr.hlp (
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
LOCK...UNLOCK Statement Details
◄Syntax► ◄Details► ◄Example► ◄Contents► ◄Index► ◄Back►
──────────────────────────────────────────────────────────────────────────────
The LOCK...UNLOCK statement controls access by other processes to all
or part of an opened file.
LOCK [#]filenumber% [,{record& |[start&] TO end&}]
.
.
.
UNLOCK [#]filenumber% [,{record& | [start&] TO end&}]
■ The argument record& can be any number from 1 to 2,147,483,647
(equivalent to 2^31 - 1). A record can be up to 32,767 bytes long.
■ For binary-mode files, the arguments record&, start&, and end&
represent the number of a byte relative to the beginning of the file.
The first byte in a file is byte 1.
■ For random-access files, record&, start&, and end& are the number of a
record relative to the beginning of the file. The first record is
record 1.
■ If the file has been opened for sequential input or output, LOCK and
UNLOCK affect the entire file, regardless of the range specified by
start& and end&.
Important
■ Be sure to remove all locks with an UNLOCK statement before closing
a file or terminating your program. Failing to remove locks produces
unpredictable results.
■ The arguments to LOCK and UNLOCK must match exactly.
■ Do not use LOCK and UNLOCK on devices or ISAM tables.
■ If you attempt to access a file that is locked, BASIC may generate
the following error messages:
"Bad record number"
"Permission denied"
Usage Notes
■ LOCK and UNLOCK statements are used in networked environments where
several processes might need access to the same file.
■ LOCK and UNLOCK statements are always used in pairs. The arguments
to LOCK and UNLOCK must match exactly.
■ If you specify just one record, then only that record is locked
or unlocked. If you specify a range of records and omit a starting
record (start&), then all records from the first record to the end of
the range (end&) are locked or unlocked. LOCK with no record arguments
locks the entire file, while UNLOCK with no record arguments unlocks
the entire file.
■ LOCK and UNLOCK execute only at run time if you are using OS/2 or
versions of DOS that support networking (version 3.1 or later). In
DOS, you must run the SHARE.EXE program to enable locking operations.
■ Earlier versions of DOS return an error message that reads, "Advanced
feature unavailable," if LOCK and UNLOCK are executed.