直接用SQL语句可以:
dim objConn as new adodb.connection
objConn.open "..." '你的连接
objConn.execute "Use Master" '先连接到Master数据库
objConn.execute "backup database dbname to disk='c:\bak\yymmdd.dat'" 把数据库dnbame备份到c:\bak\yymmdd.dat
objConn.close
set objconn=nothing用SQL DMO也可以,需要先引用SQL DMO对象:
Private WithEvents objBAK As SQLDMO.Backup
Private Sub mnuBackup_Click()
Dim svr As New SQLDMO.SQLServer
Dim strFile As String
On Error GoTo ErrorHandler
CommonDialog1.Filter = "备份数据文件(*.Dat)|*.DAT"
CommonDialog1.InitDir = App.Path & "\BACKUP"
CommonDialog1.DialogTitle = "备份数据库"
CommonDialog1.Flags = &H4
CommonDialog1.ShowSave
If CommonDialog1.FileName = "" Then Exit Sub
strFile = CommonDialog1.FileName
conn.Execute "USE MASTER" 'adodb.connection,在其它地方已经打开
svr.Connect sSVR, sUID, sPWD '服务器,用户名,密码
Set objBAK = New SQLDMO.Backup
objBAK.PercentCompleteNotification = 1
objBAK.Database = sDBS
objBAK.Files = strFile
objBAK.SQLBackup svr
conn.Execute "USE " & sDBS
Set objBAK = Nothing
svr.Close
Set svr = Nothing
Exit SubErrorHandler:
Screen.MousePointer = 0
If Err.Number <> 32755 Then
MsgBox Err.Description, 64
End If
End Sub
Private Sub objBAK_Complete(ByVal Message As String)
MsgBox "备份成功!", 64
End Sub
Private Sub objBAK_PercentComplete(ByVal Message As String, ByVal Percent As Long)
ProgressBar1.Value = Percent
End Sub
dim objConn as new adodb.connection
objConn.open "..." '你的连接
objConn.execute "Use Master" '先连接到Master数据库
objConn.execute "backup database dbname to disk='c:\bak\yymmdd.dat'" 把数据库dnbame备份到c:\bak\yymmdd.dat
objConn.close
set objconn=nothing用SQL DMO也可以,需要先引用SQL DMO对象:
Private WithEvents objBAK As SQLDMO.Backup
Private Sub mnuBackup_Click()
Dim svr As New SQLDMO.SQLServer
Dim strFile As String
On Error GoTo ErrorHandler
CommonDialog1.Filter = "备份数据文件(*.Dat)|*.DAT"
CommonDialog1.InitDir = App.Path & "\BACKUP"
CommonDialog1.DialogTitle = "备份数据库"
CommonDialog1.Flags = &H4
CommonDialog1.ShowSave
If CommonDialog1.FileName = "" Then Exit Sub
strFile = CommonDialog1.FileName
conn.Execute "USE MASTER" 'adodb.connection,在其它地方已经打开
svr.Connect sSVR, sUID, sPWD '服务器,用户名,密码
Set objBAK = New SQLDMO.Backup
objBAK.PercentCompleteNotification = 1
objBAK.Database = sDBS
objBAK.Files = strFile
objBAK.SQLBackup svr
conn.Execute "USE " & sDBS
Set objBAK = Nothing
svr.Close
Set svr = Nothing
Exit SubErrorHandler:
Screen.MousePointer = 0
If Err.Number <> 32755 Then
MsgBox Err.Description, 64
End If
End Sub
Private Sub objBAK_Complete(ByVal Message As String)
MsgBox "备份成功!", 64
End Sub
Private Sub objBAK_PercentComplete(ByVal Message As String, ByVal Percent As Long)
ProgressBar1.Value = Percent
End Sub
Dim strFile As String
On Error GoTo ErrorHandler
CommonDialog1.Filter = "备份数据文件(*.Dat)|*.DAT"
CommonDialog1.InitDir = App.Path & "\BACKUP"
CommonDialog1.DialogTitle = "恢复数据"
CommonDialog1.Flags = &H4
CommonDialog1.ShowOpen
DoEvents
If CommonDialog1.FileName = "" Then Exit Sub
strFile = CommonDialog1.FileName
Screen.MousePointer = 11
Load frmProgress
Label1.Caption = "正在准备恢复..."
DoEvents
conn.Execute "USE MASTER"
Dim svr As New SQLDMO.SQLServer
svr.Connect sSVR, sUID, sPWD
Label1.Caption = "正在从文件" & LCase(strFile) & "中恢复数据..."
DoEvents
Set objRST = New SQLDMO.Restore
objRST.PercentCompleteNotification = 1
objRST.Database = "MRP"
objRST.ReplaceDatabase = True
objRST.Files = strFile
objRST.SQLRestore svr
conn.Execute "USE MRP"
Set objRST = Nothing
svr.Close
Set svr = Nothing
Exit Sub
ErrorHandler:
If Err.Number <> 32755 Then MsgBox Err.Description, 64
Screen.MousePointer = 0
End Sub
Private Sub objRST_Complete(ByVal Message As String)
Screen.MousePointer = 0
MsgBox "恢复数据成功!", 64
End SubPrivate Sub objRST_PercentComplete(ByVal Message As String, ByVal Percent As Long)
ProgressBar1.Value = Percent
End Sub