Tài liệu Restore a SQL Server Database doc

5 328 0
Tài liệu Restore a SQL Server Database doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

7.3 Restore a SQL Server Database Sometimes the user needs to restore a database, and again, it is nice if he doesn't have to go to Enterprise Manager to accomplish this task. This How-To explains how to use the Restore object from SQL-DMO to accomplish this task. It's all well and good to be able to back up and verify a SQL Server database, but what about being able to restore the database if necessary? How do you create a dialog box to restore a SQL Server database? Technique For this How-To, you will use the Restore object of the SQL-DMO object model. You can see the properties and methods that will be used in Table 7.5. Table 7.5. Properties and Methods of the Restore Object Property/Method Description Action This property allows you to specify what type of backup you want to take place. The choices are found in the SQLDMO.SQLDMO_RESTORE_TYPE namespace and are SQLDMORestore_Database, SQLDMORestore_Files, SQLDMORestore_Log. Database This property allows you to specify the database name to restore to. Devices This property shows which device(s) you are restoring from. ReplaceDatabase This property tells whether to replace the database. SQLRestore This method causes the restore to be executed. Using the objects listed in Table 7.5, you will create a form with options for the user to restore his database. Steps Open and run the VB.NET -Chapter 7 solution. From the main Windows Form, click on the command button with the caption How-To 7.3. You will then see the form displayed in Figure 7.8. Figure 7.8. This form restores a SQL Server database. As with How-To 7.2, a user clicks on the SQL Server for which he wants to display the databases. He can then choose the database and backup device. From there, the user can click the Restore button to restore the database. 1. Create a Windows Form. Then place the controls shown in Figure 7.8, with the following properties set as in Table 7.6. Table 7.6. Label, ListBox, DataGrid, and Command Button Controls Property Settings Object Property Setting Label Name Label1 Text SQL Servers ListBox Name lstSQLServers Label Name Label2 Text Databases ListBox Name lstDatabases Label Name Label3 Text Backup Devices ListBox Name lstBackupDevices Command Button Name btnBackup Text &Backup Label Name Label4 Text Options Panel Name Panel1 CheckBox Name chkReplaceDB Text Replace Database? Checked True Command Button Name btnClose Text &Close 2. On the form, add the code in Listing 7.14 to the Load event. This will look familiar from the first How-To. For an examination of the LoadSQLServers routine, check out step 4 in How-To 7.1. Listing 7.14 frmHowTo7_3.vb: Calling the Routine That Loads Available SQL Servers into a List Box Private Sub frmHowTo7_3_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Load up the SQL Servers LoadSQLServers(Me.lstSQLServers) End Sub 3. On the lstSQLServers list box, add the code in Listing 7.15 to the SelectedIndexChanged event. This routine calls both GetSQLDatabases, described in step 6 of How-To 7.1, and GetBackupDevices, described in step 4 of How-To 7.2. Listing 7.15 frmHowTo7_3.vb: Populating the lstDatabases and lstBackupDevices List Boxes Private Sub lstSQLServers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles lstSQLServers.SelectedIndexChanged GetSQLDatabases(Me.lstSQLServers.SelectedItem, Me.lstDatabases) GetBackupDevices(Me.lstSQLServers.SelectedItem, Me.lstBackupDevices) End Sub 4. On the btnRestore button, add the code in Listing 7.16 to the Click event. After logging into the server, the Restore object is created and its properties are set from the form. The SQLRestore method is invoked and the connection is closed. Listing 7.16 frmHowTo7_3.vb: Performing the Backup Private Sub btnRestore_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnRestore.Click ' Create a connection to the server Dim osvr As New SQLDMO.SQLServer() osvr.LoginSecure = True osvr.Connect(Me.lstSQLServers.SelectedItem) ' Create the restore object, set the properties from the form, ' and execute the restore. Dim oRestore As New SQLDMO.Restore() With oRestore .Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database .Database = Me.lstDatabases.SelectedItem .Devices = "[" & Me.lstBackupDevices.SelectedItem & "]" .ReplaceDatabase = Me.chkReplaceDB.Checked .SQLRestore(osvr) End With ' Disconnect and clean up. osvr.DisConnect() osvr = Nothing oRestore = Nothing MessageBox.Show("Database Restored", "Task Completed", _ MessageBoxButtons.OK) End Sub 5. Add the code in Listing 7.17 to the Click event of btnClose. Listing 7.17 frmHowTo7_3.vb: Performing the Backup Private Sub btnClose_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnClose.Click Me.Close() End Sub How It Works The Restore object is the counter object to the Backup object, allowing you to restore databases that have been backed up. As with the Backup object, you can either specify the properties yourself or let the user choose them on the form. Comments Again, you need to be careful which options you let the user specify and which you specify yourself. This is a utility that you might want to secure; only let an administrator have access to it so that users don't accidentally overwrite a good database with an old one. As with the backup, you could enhance this utility by allowing the user to specify a file to restore from instead of a backup device. . back up and verify a SQL Server database, but what about being able to restore the database if necessary? How do you create a dialog box to restore a. 7.3 Restore a SQL Server Database Sometimes the user needs to restore a database, and again, it is nice if he doesn't have to go to Enterprise Manager

Ngày đăng: 26/01/2014, 11:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan