Sql Server 2000 恢复我是做在服务器上,那样就不用那么麻烦了 Private Sub cmdRestore_Click() On Error GoTo ErrHandler: Dim oRestore As SQLDMO.Restore
Dim Msg As String Dim Response As String txtStatus.Text = "" gDatabaseName = cmbDatabaseName.Text Set oRestore = New SQLDMO.Restore Set oRestoreEvent = oRestore ' enable events oRestore.Database = gDatabaseName gBkupRstrFileName = txtDataFileName.Text oRestore.Files = gBkupRstrFileName
Screen.MousePointer = vbHourglass
'恢复数据库. oRestore.SQLRestore gSQLServer
Screen.MousePointer = vbDefault
Set oRestoreEvent = Nothing ' disable events Set oRestore = Nothing Exit SubErrHandler: txtStatus.Text = "" PrintStat "错误信息:" + vbCrLf & " " & Err.Description + vbCrLf & " 请检查您所输入的路径及名称是否正确?在进行数据库恢复时,其它计算机是不能使用该数据库的,请确认后重试!" MsgBox "错误信息 " & Err.Description, , gTitle Resume Next End Sub
你关闭所有连接,然后建立一个到master表的连接,再恢复数据库,
你的意思是不是
就是连接上master数据库,再对要恢复的数据库进行恢复对吗
PauseTime = 5 ' 设置暂停时间。
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
msgbox "!"
shell "net start sqlserver"然后你再恢复
重起数据库
PauseTime = 5 ' 设置暂停时间。
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
msgbox "!"
shell "net start MSsqlserver"然后你再恢复
它不是标准sql语句.
VB里建立的连接不能用这个命令转换当前连接.只能关闭原来的连接,再建立新的连接.
不如,直接 net stop 再 net start 。
如果有在查询分析器中,直接执行USE MASTER即可;
如果是在VB的程序中:
dim objConn as new adodb.connection
objconn.open "..."
objconn.execute "use master"
objconn.execute "restore database db1 ..."
可以执行吗?
Private Sub cmdRestore_Click()
On Error GoTo ErrHandler:
Dim oRestore As SQLDMO.Restore
Dim Msg As String
Dim Response As String txtStatus.Text = ""
gDatabaseName = cmbDatabaseName.Text
Set oRestore = New SQLDMO.Restore
Set oRestoreEvent = oRestore ' enable events
oRestore.Database = gDatabaseName
gBkupRstrFileName = txtDataFileName.Text
oRestore.Files = gBkupRstrFileName
Screen.MousePointer = vbHourglass
'恢复数据库.
oRestore.SQLRestore gSQLServer
Screen.MousePointer = vbDefault
Set oRestoreEvent = Nothing ' disable events
Set oRestore = Nothing
Exit SubErrHandler:
txtStatus.Text = ""
PrintStat "错误信息:" + vbCrLf & " " & Err.Description + vbCrLf & " 请检查您所输入的路径及名称是否正确?在进行数据库恢复时,其它计算机是不能使用该数据库的,请确认后重试!"
MsgBox "错误信息 " & Err.Description, , gTitle
Resume Next
End Sub
objconn.execute "use master" 可以执行的,你可以试一下
cnn.close
endif
With adocommand
.ActiveConnection = adoconnection
.CommandType = adCmdText
.CommandText = "use master" '或其它的数据库
.Execute
End WithWith adocommand
.ActiveConnection = adoconnection
.CommandType = adCmdText
.CommandText = "use master" '或其它的数据库
.Execute
End WithWith adocommand
.ActiveConnection = adoconnection
.CommandType = adCmdText
.CommandText = "restore database jdxt from disk='数据库路径和名称'
.Execute
End WithWith adocommand
.ActiveConnection = adoconnection
.CommandType = adCmdText
.CommandText = "use jdxt"
.Execute
End With这样就行了,可以不必在VB里面重新定义连接