数据库还原

王朝vb·作者佚名  2006-01-08
宽屏版  字体: |||超大  

数据库还原

'引用sqldmo object library

Dim gSQLServer As SQLDMO.SQLServer

On Error GoTo ErrHandler:

If gSQLServer Is Nothing Then

Set gSQLServer = New SQLDMO.SQLServer

End If

gSQLServer.LoginTimeout = 15

frmSelectServer.Show 1

If frmSelectServer.connecString = "" Then Exit Sub

gSQLServer.Connect frmSelectServer.connecString, "sa", "sa"

Dim oRestore As SQLDMO.Restore

Dim Msg As String

Dim Response As String

Set oRestore = New SQLDMO.Restore

oRestore.DATABASE = "data"

CommonDialog1.CancelError = True

On Error GoTo Errhandler1

' 设置标志

CommonDialog1.Flags = cdlOFNHideReadOnly

' 设置过滤器

CommonDialog1.Filter = "All Files (data*.*)|data*.*"

' 指定缺省的过滤器

CommonDialog1.FilterIndex = 2

' 显示“打开”对话框

'

Dim riqi As String

CommonDialog1.FileName = riqi

CommonDialog1.ShowOpen

' 显示选定文件的名字

riqi = CommonDialog1.FileName

oRestore.Files = riqi

'当连接的时候,鼠标变化

Screen.MousePointer = vbHourglass

'恢复前断开所有的数据库连接

Dim iDb As ADODB.Connection, iRe As ADODB.Recordset

Set iDb = New ADODB.Connection

Set iRe = New ADODB.Recordset

Dim iConcStr As String

'连接数据库服务器

iConcStr = "Provider=sqloledb;" & _

"Data Source=myServerName;" & _

"Initial Catalog=master;" & _

"User Id=myUsername;" & _

"Password=myPassword"

iDb.Open iConcStr

Dim iSql As String

iSql = "select spid from master..sysprocesses where dbid=db_id('data')"

iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly

frmMoive.Label1.Caption = "数据库在还原过程中,请等候。"

frmMoive.Caption = "数据库恢复"

frmMoive.Show vbModeless, Me

DoEvents

Me.Enabled = False

Dim Spath As String

If Right(App.Path, 1) <> "\" Then

Spath = App.Path & "\"

Else

Spath = App.Path

End If

frmMoive.Animation1.Open Spath & "working.avi"

frmMoive.Animation1.Play

While iRe.EOF = False

iSql = "kill " & iRe(0)

iDb.Execute iSql

iRe.MoveNext

Wend

iRe.Close

iDb.Close

'恢复数据库

oRestore.SQLRestore gSQLServer

'恢复后鼠标返回默认的状态

Me.Enabled = True

frmMoive.Animation1.Stop

Unload frmMoive

Set oRestore = Nothing

Screen.MousePointer = vbDefault

MsgBox "数据库还原成功!"

Exit Sub

ErrHandler:

MsgBox "Error " & Err.Description

Exit Sub

Errhandler1:

' 用户按了“取消”按钮

Exit Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有