问题描述:
我已经对一个名为“balance”的数据库进行了备份(备份名称balance.bak)。现在用下面的sql脚本在查询分析其中进行恢复:
RESTORE DATABASE balance from DISK='..\balance.bak'
恢复成功。
但是当我在vb中使用connection对象恢复时,代码如下:
'conn是connection对象,并以连接balance数据库
conn.Excute "RESTORE DATABASE balance from DISK='..\balance.bak'"
每次执行上条语句时总是发生错误:
“数据库正在被使用,无法获得对数据库的排它访问权限。”请问应如何解决这一问题呢?谢谢。
我已经对一个名为“balance”的数据库进行了备份(备份名称balance.bak)。现在用下面的sql脚本在查询分析其中进行恢复:
RESTORE DATABASE balance from DISK='..\balance.bak'
恢复成功。
但是当我在vb中使用connection对象恢复时,代码如下:
'conn是connection对象,并以连接balance数据库
conn.Excute "RESTORE DATABASE balance from DISK='..\balance.bak'"
每次执行上条语句时总是发生错误:
“数据库正在被使用,无法获得对数据库的排它访问权限。”请问应如何解决这一问题呢?谢谢。
Restore_data.CommandType = adCmdTextRestore_data.CommandText = "restore database balance from disk= '" & Dir1.Path + "\balance.bak'"Restore_data.Execute
MsgBox "恢复数据成功!"
AdoCon.DefaultDatabase = "master" '将当前默认数据库改为master,以免恢复时发生冲突
再restore,恢复完成后用会原数据库
Public Function RestoreDatabase(Database As String, FileName As String) As Boolean
'恢复数据库
On Error GoTo er
If mState <> 1 Then Exit Function
Dim oRestore As Object
Set oRestore = CreateObject("SQLDMO.Restore")
oRestore.Database = Database
oRestore.Files = FileName
oRestore.ReplaceDatabase = True
If Len(Dir(FileName)) > 0 Then
Kill (FileName)
End If
oRestore.SQLRestore sql
er:
RestoreDatabase = IIf(Err.Number = 0, True, False)
End Function
特别感谢itxxx。
问题解决后,怎么给各位加分?