Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> 其他  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702307
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

.ldb文件到底派什么用场得?

作者:ms(cg1翻译)  摘自:ms  :cg1  更新日期:2004-1-11  浏览人次:

 

本文参考地址:http://support.microsoft.com/default.aspx?kbid=208778

摘要:
.ldb文件在多用户环境下是非常重要得。该文件被 MS Jet DB Engine V4.0 用来确定被共享的数据库中哪条记录被锁定以及被谁锁定

更多信息:
.ldb 文件是由共享数据库的使用者自动创建以及删除得。.LDB 文件建立并存储计算机名、用户名以及放置扩展域锁的。.LDB 文件一般与 .MDB 同名,并且与 .MDB 文件在相同目录,在 .MDB 文件被打开时建立并锁定。举个例子,如果你打开 c:\northwind.mdb 文件后 c:\northwind.ldb 文件会自动被建立并被锁定。

当最后一个用户关闭共享数据库时 .ldb 文件会被自动删除。但是当用户没有正常关闭数据库或者数据库已经被标记为损坏,那么 .LDB 文件不会被自动删除,因为 .LDB 文件中存储着数据库损坏时谁正在使用该数据库。

权限问题:
记得要给予 .LDB 文件所在的文件夹一定的权限。
如果你准备共享一个数据库,该 .MDB 文件应该被放置在一个用户拥有读取、写入、建立、删除权限的目录中。即使你要求每个用户有不同的文件权限(比如,只读或者可读写),所有能够共享该数据的用户对该目录都应该拥有读取、写入、建立的权限,但是你可以分配用户对某个 .MDB 文件只拥有只读权限。

注意:如果用独占方式打开某个数据库,那么 MS JET DB 将不会建立 .LDB 文件,此时用户对目录的权限只要求有读取和写入两个权限即可。

.ldb 文件的内容:
MS JET DB ENGINE 会为每个以共享方式打开数据库的使用者在 .LDB 文件中创建一个条目,每个条目的大小是 64 字节。前面 32 字节保存计算机名,后面 32 字节保存用户名。JET DB ENGINE 支持的最大用户数是 255,因此 .LDB 文件的大小不会超过 16 KB。
当一个用户关闭一个共享数据库时,该用户在 .LDB 文件中的条目不会立即被删除,可是该条目会在下一个用户打开这个数据库时被覆盖。这也就意味着你不能通过 .LDB 文件来唯一确定谁是某个数据库的当前使用者。

.LDB 文件的使用方法:
JET DB ENGINE 使用 .LDB 文件中的信息来确定谁锁定了数据,谁正在写入被其他人锁定的数据。如果 JET DB ENGINE 发现有其他用户的锁定冲突,它会读取 .LDB 文件以获取计算机名与用户名谁锁定了文件或者记录。

在多数锁定冲突情况下,你会在存储记录时得到一个 “写入冲突”的提示并且取消你所做的修改。在有些情况下你会得到如下提示:

Couldn't lock table <table name>; currently in use by user <security name> on computer <computer name>. 

注意:上述关于 .LDB 文件的信息与数据库文件无关。如果一个 .LDB 文件损坏,数据库文件仍然能够工作正常。但是写入冲突的提示消息中<security name>这个部分你可能会看见一串不知所云的文字。

参考:
在 Access 2000 中,你可以用 VBA 来输出某个数据库的所有登陆用户的信息。

关于此代码请参考:
198755 ACC2000: Checking Who Logged into Database with Jet UserRoster 
http://support.microsoft.com/default.aspx?kbid=198755

原文地址:http://support.microsoft.com/default.aspx?kbid=208778

ACC2000: Introduction to .ldb Files
适用于
This article was previously published under Q208778 
Moderate: Requires basic macro, coding, and interoperability skills. 

This article applies only to a Microsoft Access database (.mdb). 

For a Microsoft Access 2002 version of this article, see 299373. 

SUMMARY
The .ldb file plays an important role in the multiuser scheme of the Microsoft Jet database engine version 4.0. The .ldb file is used to determine which records are locked in a shared database and by whom. 
MORE INFORMATION
Automatic .ldb File Creation and Deletion
For every database opened for shared use, an .ldb file is created to store computer and security names and to place extended byte range locks. The .ldb file always has the same name as the opened database (.mdb) and is located in the same folder as the opened database. For example, if you open (for shared use) the Northwind.mdb sample database in the C:\Program Files\Microsoft Office\Office\Samples folder, then a file called Northwind.ldb is automatically created in the same folder. 

Whenever the last user closes a shared database, the .ldb file is deleted. The only exceptions are when a user does not have delete rights or when the database is marked as corrupted; then, the .ldb file is not deleted because it contains information about who was using the database at the time the database was marked as corrupted. 
Required Folder Privileges
If you plan to share a database, the .mdb file should be located in a folder where users have read, write, create, and delete privileges. Even if you want users to have different file privileges (for example, some read-only and some read-write), all users sharing a database must have read, write, and create permissions to the folder. You can, however, assign read-only permissions to the .mdb file for individual users while still allowing full permissions to the folder. 

NOTE: If a user opens a database with exclusive access (by clicking the Exclusive check box in the Open dialog box), record locking is not used; therefore, Microsoft Access does not attempt to open or create an .ldb file. If the database is always opened for exclusive use, a user needs only read and write privileges to the folder. 
The .ldb File Contents
For each person who opens a shared database, the Jet database engine writes an entry in the database's .ldb file. The size of each .ldb entry is 64 bytes. The first 32 bytes contain the computer name (such as JohnDoe). The second 32 bytes contain the security name (such as Admin). The maximum number of concurrent users that the Jet database engine supports is 255; therefore, the .ldb file size is never larger than 16 kilobytes. 

When a user closes a shared database, the user's entry is not removed from the .ldb file. However, it may be overwritten when another user opens the database. This means that you cannot use the .ldb file alone to determine who is currently using the database. 
The .ldb File Usage
The Jet database engine uses .ldb file information to prevent users from writing data to pages that other users have locked and to determine who has other pages locked. If the Jet database engine detects a lock conflict with another user, it reads the .ldb file to get the computer and security name of the user who has the file or record locked. 

In most lock conflict situations, you receive a generic "Write conflict" message that allows you to save the record, copy it to the Clipboard, or drop the changes you made. In some circumstances, however, you receive the following error message: 

Couldn't lock table <table name>; currently in use by user <security name> on computer <computer name>. 
NOTE: The state of the information in the .ldb file has no bearing on the state of the database. If an .ldb file becomes corrupted, everything in the database should still work correctly. However, you may see scrambled text instead of user names in any lock conflict messages. 
REFERENCES
With Microsoft Visual Basic for Applications in Access 2000, you can output a list of users who are logged into a specific database. 

For additional information about how to do this and sample code, click the article number below to view the article in the Microsoft Knowledge Base: 
198755 ACC2000: Checking Who Logged into Database with Jet UserRoster 

The information in this article applies to:
Microsoft Access 2000
Last Reviewed: 3/10/2003 (1.1)  
Keywords: kbinfo kbusage KB208778 


 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利