PDA

View Full Version : سوال: نحوه بازيابي نسخه پشتيبان بانك اطلاعاتي



headphone
شنبه 25 خرداد 1387, 21:23 عصر
سلام به دوستان :
من براي ذخيره نسخه پشتيبان از بانك اطلاعاتي برنامم از كد زير استفاده كردم كه يك فايل با پسوند .bak براي من مي سازد . حالا ميخوام اون نسخه پشتيبان را بازيابي كنم چطوري مي شه اين كار رو كرد :


With savefiledialog1
.InitialDirectory = "C:\"
.FileName = "Databasebackup"
EndWith
If savefiledialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim path() AsString = Split(savefiledialog1.FileName, "\")
If path(1) = "Documents and Settings"Then
dialogBox.Label1.Text = "ذخيره نسخه پشتيبان در شاخه Documents and Settings و زير شاخه هاي آن ممكن نيست. به شما پيشنهاد مي شود از درايوهاي ديگر جهت ذخيره سازي استفاده كنيد."
dialogBox.Play_Err_sound()
dialogBox.ShowDialog()
Else
server = New SQLDMO.SQLServer2Class
backup = New SQLDMO.Backup2Class
backupevents = backup
server.LoginSecure = True
server.Connect("(LOCAL)", "sa")
Console.WriteLine("server{0}", server.Name)
database = server.Databases.Item("Financial Institution")
backup.Database = database.Name
backup.Files = savefiledialog1.FileName & "" & ".bak"
backup.SQLBackup(server)
server.DisConnect()
backupevents = Nothing
backup = Nothing
server = Nothing
dialogBox.Label1.Text = "نسخه پشتيبان با موفقيت ذخيره شد"
dialogBox.Play_Info_sound()
dialogBox.ShowDialog()
EndIf
EndIf

combo_ci
شنبه 25 خرداد 1387, 23:25 عصر
تو برگرداندن فايل backup بايد در نظر داشته باشي كه اووون database در حال استفاده يا in use نباشه....تو همسن تالار جستجو كن....كد كاملش هست

parsavb
یک شنبه 26 خرداد 1387, 07:23 صبح
می تونی از این روش استفاده کنی
ابتدا کامپوننت microsoft sqldmo object library 8.5 رو به پروژه خودتون اضافه کنید



PublicClass frm_database
Dim server As SQLDMO.SQLServer2Class
Dim database As SQLDMO.Database2
Dim restor As SQLDMO.Restore2

PrivateSub btn_restor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_restor.Click

server = New SQLDMO.SQLServer2Class
restor = New SQLDMO.Restore2

server.LoginSecure = True
server.Connect("(local)")

MsgBox("server{0}:" + server.Name)database = server.Databases.Item("nortwind")
MsgBox("database{0}:" + database.Name)
restor.Database = database.Name


restor.Files = "c:\nortwind.bak"
restor.SQLRestore(server)
server.DisConnect()
restor = Nothing
server = Nothing

MsgBox("اطلاعات بازگردانده شد")
EndSub
EndClass


این برنامه رو هم چند روز پیش گذاشته بودم حالا کاملترش کردم ببین به دردت می خوره

HAMRAHSOFT.IR
سه شنبه 24 شهریور 1388, 13:44 عصر
می تونی از این روش استفاده کنی
ابتدا کامپوننت microsoft sqldmo object library 8.5 رو به پروژه خودتون اضافه کنید



PublicClass frm_database
Dim server As SQLDMO.SQLServer2Class
Dim database As SQLDMO.Database2
Dim restor As SQLDMO.Restore2

PrivateSub btn_restor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_restor.Click

server = New SQLDMO.SQLServer2Class
restor = New SQLDMO.Restore2

server.LoginSecure = True
server.Connect("(local)")

MsgBox("server{0}:" + server.Name)database = server.Databases.Item("nortwind")
MsgBox("database{0}:" + database.Name)
restor.Database = database.Name


restor.Files = "c:\nortwind.bak"
restor.SQLRestore(server)
server.DisConnect()
restor = Nothing
server = Nothing

MsgBox("اطلاعات بازگردانده شد")
EndSub
EndClass

این برنامه رو هم چند روز پیش گذاشته بودم حالا کاملترش کردم ببین به دردت می خوره


برنامه خطا ميده هنگام اجرا

maXXis
سه شنبه 24 شهریور 1388, 15:03 عصر
کامپوننت microsoft sqldmo object library 8.5 رو به برنامه اضافه کردی؟:متفکر:

HAMRAHSOFT.IR
سه شنبه 24 شهریور 1388, 16:01 عصر
چطوری انکار بکنم من تازه کارم داخل این زبان

omid_reza
سه شنبه 24 شهریور 1388, 16:16 عصر
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Try
sqlcom = New SqlCommand
sqlcon = New SqlConnection
sqlcon.ConnectionString = strsqlconConvertfarzin
sqlcon.ConnectionString = "Data Source=" + T_SQLSErNameFArzin.Text + ";Initial Catalog=master;Integrated Security=True"
If sqlcon.State = ConnectionState.Closed Then
sqlcon.Open()
End If
sqlcom.Connection = sqlcon
sqlcom.CommandText = "RESTORE DATABASE [convert barid] FROM DISK = @Address WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10"
''''''''''''''''''''''''''''''''''''''''''''
Dim Param1 As New SqlParameter
Param1.Direction = ParameterDirection.Input
Param1.DbType = DbType.String
Param1.ParameterName = "@Address"
Param1.Value = T_AddressBackup.Text
sqlcom.Parameters.Add(Param1)
''''''''''''''''''''''''''''''''''''''''''''
sqlcom.ExecuteNonQuery()
MsgBox("OK")
If sqlcon.State = ConnectionState.Open Then
sqlcon.Close()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

sh2007
پنج شنبه 26 شهریور 1388, 09:30 صبح
وقتي داري بازيابي مي كني اگه جدولها use باشند ارور ميده