![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
BDE API Examples (DbiAcqPersistTableLock)Acquires an exclusive persistent lock on the table preventing other users from using the table or creating a table of the same name.Place a lock on a non-existent table: Create a directory "read only" lock file for accessing Paradox tables on CD-ROMs and "read only" network directories.This example uses the following input:CreateReadOnlyLockFile(Database1) NOTE: Once the .lck files are created, you can move them to any directory to create a read only directory. Also, if this lock is used on a local machine, LOCAL SHARE will need to be set to TRUE. procedure CreateReadOnlyLockFile(Database: TDatabase);
var
DBType, Dir: string;
Len: word;
begin
SetLength(DBType, DBIMAXNAMELEN + 1);
// Make sure that the database is of STANDARD type...
Check(DbiGetProp(hDBIObj(Database.Handle), dbDATABASETYPE, Pchar(DBType),
DBIMAXNAMELEN, Len));
SetLength(DBType, Len - 1);
if DBType <> 'STANDARD' then
raise EDatabaseError.Create('Directory locks can only be created on STANDARD aliases');
SetLength(Dir, DBIMAXPATHLEN + 1);
// Get the directory that the TDatabase is pointing to...
Check(DbiGetDirectory(Database.Handle, False, PChar(Dir)));
SetLength(Dir, StrLen(PChar(Dir)));
// Lock the directory...
Check(DbiAcqPersistTableLock(Database.Handle, 'paradox.dro', szPARADOX));
end;
| ||
|
DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains. |
||
| Trademarks & Copyright © 1998 Borland International, Inc. | ||