庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>VB专区>编程技巧>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

ADO设定独占性的资料库

 作者:本站收集   日期:2005-8-4 11:32:05
字号选择〖 〗/ 双击滚屏 单击停止   
在Informix之下设定独占性的资料库比较简单,主要就是以下指令

DATABASE database-name EXCLUSIVE
以下FUNCTION是Informix 开启独占资料库的方式
'************************************************************
'DbNmae 待开启的资料库
'UserID User ID
'PassWD User Password
'ExclusiveMode True表示以独占方式开启
'ErrDescription 如果开启过程有错,传回错误描述
'传回值:一个ADBDB.Connection物件,有错时传回Nothing
'*************************************************************
Public Function OpenConnection(ByVal DbName As String, ByVal UserID As String, _
ByVal PassWD As String, ByVal ExclusiveMode, ErrDescription As String) As ADODB.Connection
Dim curConn As New ADODB.Connection, connstr As String
curConn.Provider = "MSDASQL"
connstr = "UID=" + UserID + ";PWD=" + PassWD + ";Database=" + DbName
connstr = connstr + _
";Driver={OpenLink Generic 32 Bit Driver};" _
+ "Host=192.168.0.61;" _
+ ";FetchBufferSize=30" _
+ ";NoLoginBox=Yes" _
+ ";Options=" _
+ ";Protocol=TCP/IP" _
+ ";ReadOnly=No" _
+ ";ServerOptions=" _
+ ";ServerType=Informix 7.2"

curConn.ConnectionString = connstr
On Error GoTo errh:
curConn.Open
If ExclusiveMode Then
curConn.Execute "DATABASE " + DbName + " EXCLUSIVE"
End If
ErrDescription = ""
Set OpenConnection = curConn
Exit Function
errh:
If curConn.State = adStateOpen Then
curConn.Close
End If
ErrDescription = Err.Description
Set curConn = Nothing
End Function

使用方式

Set cn = OpenConnection("cwwpf@eis", "cww", "jjh5612", True, Errstr)
If cn Is Nothing Then
MsgBox Errstr
End If
而SQL Server就没有那样容易,我们知道有一个system stored procedure

SP_DBOPTION database-name, 'Single User', TRUE '设定Single User Mode
SP_DBOPTION database-name, 'Single User', FALSE '设定Multi User Mode

不过这里有许多点要注意:
1.必需是sa才有权
2.透过OLEDB Provider来做时不会成功(for SQL 6.5)
3.如下面的范例中,虽我们成功的设定了 Single User Mode,但不表示我们接下来
的建立连线会成功。说不定在设为单一使用者後,还来不及建立另外的连线时,就
有其他的Process先进入该资料库。
4.我曾经使用同一个Connection先将DataBase设为Single User Mode而後再以该Connection
来开启资料库,Open Recordset,但是有时会发生问题,因而没有Release出来

SetOK = SetSingleUserMode("cwwtest", False, Errstr)
If SetOK Then
Debug.Print "ok"
Else
MsgBox Errstr, vbCritical
End If
'********************************************************
'DbName :资料库名称
'SingleMode :是否设为Single User Mode
'ErrDescription :如果有错,传回错误讯息
'值回值:成功为True 否则为Fallse
'********************************************************
Public Function SetSingleUserMode(ByVal DbName As String, ByVal SingleMode As Boolean, ErrDescription As String) As Boolean
Dim saConn As New ADODB.Connection
Dim connstr As String
Dim cmd3 As New ADODB.Command
Dim Param As ADODB.Parameter

connstr = "Driver={SQL Server};UID=sa;PWD=jjh5612;Server=OPEN_VIEW;Database=master"
saConn.Provider = "MSDASQL"
'connstr = "Data Source=OPEN_VIEW;User=sa;Password=jjh5612;Initial Catalog=master"
'saConn.Provider = "SQLOLEDB"
saConn.ConnectionString = connstr
saConn.Open
Set cmd3 = New ADODB.Command
cmd3.CommandText = "sp_dboption ?, 'Single User', ?"
cmd3.CommandType = adCmdText
Set Param = cmd3.CreateParameter("ParaDBName", adBSTR, adParamInput)
cmd3.Parameters.Append Param
Set Param = cmd3.CreateParameter("ParaSingleMode", adBSTR, adParamInput)
cmd3.Parameters.Append Param
cmd3.Parameters(0).Value = DbName
If SingleMode Then
cmd3.Parameters(1).Value = "True"
Else
cmd3.Parameters(1).Value = "False"
End If
Set cmd3.ActiveConnection = saConn
On Error GoTo errh
cmd3.Execute
ErrDescription = ""
SetSingleUserMode = True
saConn.Close
Exit Function
errh:
ErrDescription = Err.Description
SetSingleUserMode = False
saConn.Close
End Function
上一篇:Visual Basic6编程中的汉字处理    下一篇:使用Shell指令具有Wait的功能  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-4 11:32:05
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿