Lock Procedure

   
Lock Procedure

Class

Microsoft.VisualBasic.FileSystem

Syntax

 Lock(   filenumber   [,   record   ]) 

or:

 Lock(   filenumber   [,   fromrecord,torecord   ] 
filenumber (required; Integer)

Any valid file number

record (optional; Long)

The record or byte number at which to commence the lock

fromrecord (optional; Long)

The first record or byte number to lock

torecord (optional; Long)

The last record or byte number to lock

Description

The Lock procedure prevents another process from accessing a record, section, or whole file until it is unlocked by the Unlock function.

Use the Lock procedure in situations where multiple programs or more than one instance of your program may need read and write access to the same data file.

Rules at a Glance

  • Use the Lock procedure with only the filenumber argument to lock the whole file.

  • record is interpreted as a record number in the case of random files and a byte number in the case of binary files. Records and bytes in a file are always numbered sequentially from 1 onward.

  • To lock a particular record, specify its record number as record , and only that record will be locked.

  • The Lock procedure locks an entire file opened in Input or Output (sequential) mode, regardless of the record argument.

  • If you omit the start argument, Lock will lock all records from the start of the file to record or byte number end .

  • Attempting to access a locked file or portion of a file returns runtime error 70, "Permission denied ."

Programming Tips and Gotchas

  • You must take care to remove all file locks with the Unlock procedure before either closing a file or ending the application; otherwise , you can leave the file in an unstable state. This of course means that, where appropriate, your error-handling routines must be made aware of any locks you currently have in place so that they may be removed if necessary.

  • You use the Lock and Unlock procedures in pairs, and the argument lists of both statements must match exactly.

  • The Lock procedure does not guarantee under all circumstances that the locked file will be protected from access by other processes. There are two major circumstances under which an apparent access violation can occur:

    • The file has already been opened but has not been locked by a process when the current process locks it. However, the first process will not be able to perform operations on the file once the second file successfully locks it.

    • The block of code responsible for opening the file and then locking it is interrupted by the scheduling policy of the operating system before the file can be locked. If a second process then opens and locks the file, it and not the first process will have sole use of the file.

    Because of this, the Lock procedure should immediately follow the FileOpen procedure in code. This reduces , but does not eliminate, the problems that result from the fact that opening and locking a file is not an automatic operation.

VB.NET/VB 6 Differences

In the VB 6 Lock statement, you can separate the fromrecord and torecord arguments with the To keyword. In the VB.NET Lock procedure, this syntax is not supported.

See Also

Unlock Procedure

   


VB.Net Language in a Nutshell
VB.NET Language in a Nutshell
ISBN: B00006L54Q
EAN: N/A
Year: 2002
Pages: 503

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net