如何判断是否以独占方式打开当前?
来源:互联网 发布:网络视频帧数是多少 编辑:程序博客网 时间:2024/05/16 02:53
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
如何判断是否以独占方式打开当前数据库?
问题:
如何判断是否以独占方式打开当前数据库?
在链接或者用ADO操作其他数据库时,如果被操作的数据库已经被某用户以独占方式打开,就会出错,如何预先判断该数据库是否已经被独占打开?
方法一:
很简单,只要判断 currentproject.connection.ConnectionString中是否包含以下字母
Jet OLEDB:Database Locking Mode=0
写一个函数就可以判断:
Function testLockMode()
If InStr(CurrentProject.Connection.ConnectionString, "Jet OLEDB:Database Locking Mode=0") > 0 Then
MsgBox "本数据库已经用独占方式打开"
Else
MsgBox "本数据库未用独占方式打开"
End If
End Function
以下是 debug.print CurrentProject.Connection.ConnectionString 的结果供参考:
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:/IBM /desktop/mdb/重复记录.mdb;Mode=Share Deny Read|Share Deny Write;Extended Properties="";Jet OLEDB:System database=C:/Documents and Settings/ec/Application Data/Microsoft/ystem.mdw;Jet OLEDB:Registry Path=SOFTWARE/Microsoft/Office/10.0/Access/Jet/4.0;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
方法二:
很简单,你只要在程序中尝试用独占方式打开数据库即可,如果返回了错误号加以判断即可。就像本站中的很多问题解决方法类似,用错误陷阱即可判断了
Function testLockMode()
On Error Resume Next
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:/IBM WinXP/desktop/mdb/重复记录.mdb;Jet OLEDB:Database Locking Mode=0;"
If Err.Number = -2147467259 Then
MsgBox "文件已经在使用中,估计是被别人以独占方式打开了"
End If
End Function
方法三:
当然,你还可以直接读取currentdb属性来判断是否已经被独占打开
http://www.access911.net 站长收藏<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
如何判断是否以独占方式打开当前数据库?
问题:
如何判断是否以独占方式打开当前数据库?
在链接或者用ADO操作其他数据库时,如果被操作的数据库已经被某用户以独占方式打开,就会出错,如何预先判断该数据库是否已经被独占打开?
方法一:
很简单,只要判断 currentproject.connection.ConnectionString中是否包含以下字母
Jet OLEDB:Database Locking Mode=0
写一个函数就可以判断:
Function testLockMode()
If InStr(CurrentProject.Connection.ConnectionString, "Jet OLEDB:Database Locking Mode=0") > 0 Then
MsgBox "本数据库已经用独占方式打开"
Else
MsgBox "本数据库未用独占方式打开"
End If
End Function
以下是 debug.print CurrentProject.Connection.ConnectionString 的结果供参考:
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:/IBM /desktop/mdb/重复记录.mdb;Mode=Share Deny Read|Share Deny Write;Extended Properties="";Jet OLEDB:System database=C:/Documents and Settings/ec/Application Data/Microsoft/ystem.mdw;Jet OLEDB:Registry Path=SOFTWARE/Microsoft/Office/10.0/Access/Jet/4.0;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
方法二:
很简单,你只要在程序中尝试用独占方式打开数据库即可,如果返回了错误号加以判断即可。就像本站中的很多问题解决方法类似,用错误陷阱即可判断了
Function testLockMode()
On Error Resume Next
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:/IBM WinXP/desktop/mdb/重复记录.mdb;Jet OLEDB:Database Locking Mode=0;"
If Err.Number = -2147467259 Then
MsgBox "文件已经在使用中,估计是被别人以独占方式打开了"
End If
End Function
方法三:
当然,你还可以直接读取currentdb属性来判断是否已经被独占打开
http://www.access911.net 站长收藏<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 如何判断是否以独占方式打开当前数据库?
- 如何判断是否以独占方式打开当前数据库?
- 如何判断是否以独占方式打开当前?
- 如何判断是否以独占方式打开当前数据库?
- 应用层下拷贝以独占方式打开的文件
- 以独占方式打开Access数据库并创建密码
- 它已经被别的用户以独占方式打开
- 判断当前进程是否以管理员权限运行
- 金蝶打开软件时提示以独占的方式被打开
- 如何判断当前是否在线!
- C# 独占方式打开 Access
- 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开
- access提示"以独占方式打开或没有权限"的解决方法
- 在以二进制文件打开方式打开文件的时候,fread返回值判断文件是否结束的问题
- 以流方式判断是否图片
- c#判断你打开的应用程序是否以打开
- 判断是否连接网络,当前网络类型,Gps是否打开
- 以独占的方式访问某个文件
- 简单叙述动态公式的工资系统的计算方式
- DCC32參數_月夜风筝
- 如何嵌入(Docking)一个工具条(How To Docking A Too
- 如何查询其他内的表(IN子句实例)?
- 注册表
- 如何判断是否以独占方式打开当前?
- Ubuntu 8.04 LTS (Hardy Heron) DVD 下载
- 一个碎片整理程序的实现
- ERP基础档案管理模块中实现多级分类档案ID号自动编码技术(V1.0)
- 什么是COM组件
- 爱需要一生去领悟~!
- VC编译选项
- 得到对象脚本
- 允许单一实例运行的方法