Tác giả: meocon
Mô tả: Hàm Backup & Restore Database trong v2k5
---------------------------------------------------
Trước hết cần add thêm sqldmo.dll (Add Reference -->Tab Browse -->Ổ C --> Program Files --> Microsoft SQL Server -->80 -->Tools --> Binn --> sqldmo.dll)
Tiếp theo :Imports SQLDMO
Backup
Mã: Chọn hết
- Private Sub backup()
- Dim userName As String = txtUserName.Text.Trim
- Dim password As String = txtPassword.Text.Trim
- Dim localtion As String = txtFolder.Text.Trim + "\" + txtFileName.Text.Trim 'Vị trí lưu file backup
- Dim server As SQLDMO.SQLServer2 = Nothing
- Try
- Dim backup As SQLDMO.BackupClass = New SQLDMO.BackupClass
- server = New SQLDMO.SQLServer2Class
- server.Connect("localhost", userName, password)
- backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database
- backup.Database = "[Tên Database]"
- backup.Files = localtion
- backup.BackupSetDescription = "Full BackUp"
- backup.BackupSetName = "[muốn đặt gì cũng dc]"
- backup.SQLBackup(server)
- BackupLog.addToLog(txtTenTB.Text.Trim, localtion, DateTime.Now)
- MessageBox.Show(Me, "Lưu trữ dự phòng thành công file:" + localtion)
- Catch oex As System.Runtime.InteropServices.COMException
- If oex.ErrorCode = -2147203048 Then
- MessageBox.Show(Me, "Bạn nhập sai user name hoặc password.")
- End If
- If oex.ErrorCode = -2147206257 Then
- MessageBox.Show(Me, "Bạn không có quyền backup database.")
- Else
- MessageBox.Show(Me, "Mã lỗi:" + oex.ErrorCode + "" & Microsoft.VisualBasic.Chr(10) & "Lỗi : " + oex.Message)
- End If
- Catch ex As Exception
- MessageBox.Show(Me, ex.GetType + ":" + ex.Message)
- Finally
- Try
- server.Close()
- Catch ex As Exception
- End Try
- End Try
- End Sub
Restore
Mã: Chọn hết
- Private Sub Restore()
- Dim userName As String = txtUserName.Text.Trim
- Dim password As String = txtPassword.Text.Trim
- Dim localtion As String = txtFolder.Text.Trim 'Vị trí lưu file backup
- Dim server As SQLDMO.SQLServer = Nothing
- Try
- server = New SQLDMO.SQLServerClass
- server.Connect("localhost", userName, password)
- Dim restore As SQLDMO.Restore2 = New SQLDMO.Restore2Class
- restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database
- restore.Database = "[tên database]"
- restore.Files = txtFolder.Text.Trim
- restore.SQLRestore(server)
- MessageBox.Show(Me, "Phục hồi dữ liệu thành công")
- Catch oex As System.Runtime.InteropServices.COMException
- If oex.ErrorCode = -2147203048 Then
- MessageBox.Show(Me, "Bạn nhập sai user name hoặc password.", "Lỗi phục hồi dữ liệu")
- Else
- If oex.ErrorCode = -2147206257 Then
- MessageBox.Show(Me, "Bạn không có quyền phục hồi database.", "Lỗi phục hồi dữ liệu")
- Else
- If oex.ErrorCode = -2147218403 Then
- MessageBox.Show(Me, "-Bạn phải đóng tất cả chương trình đang sử dụng cơ sở dữ liệu." & Microsoft.VisualBasic.Chr(10) & "-Bạn chỉ giữ lại chương trình bạn đang chạy. " & Microsoft.VisualBasic.Chr(10) & "-Nếu bạn không biết còn chương trình nào đang chạy hay không thì tốt nhất là khởi động lại service của SqlServer hoặc khởi động lại máy.", "Lỗi phục hồi dữ liệu")
- Else
- MessageBox.Show(Me, "Mã lỗi:" + oex.ErrorCode + "" & Microsoft.VisualBasic.Chr(10) & "Lỗi : " + oex.Message, "Lỗi phục hồi dữ liệu")
- End If
- End If
- End If
- Catch ex As Exception
- MessageBox.Show(Me, ex.GetType + ":" + ex.Message, "Lỗi phục hồi dữ liệu")
- Finally
- Try
- server.Close()
- Catch ex As Exception
- End Try
- End Try
- End Sub