mina.net
پنج شنبه 07 آبان 1388, 17:03 عصر
سلام دوستان
من از کدی که برای بکاپ کیری از دیتابیسم استفاده می کنم موقعی که ریستور می شه ساختار دیتابیس رو هم در صورت عوض شدن ساختار (کم و زیاد شدن فیلد ها یا نوع و هر تغییر ساختاری)تغییر می ده .
از انجای کاربران از دیتابیس قدیمی تر استفاده می کنند و با آپدیت برنامه ممکن هست تو ساختار دیتابیس هم تغییراتی ایجاد بشه. می خوام به نحوی بکاپ تهیه شود که بعدا در صورت ریستور کردن دیتابیس رو به حالت قبلی برنگرداند.
چطور می تونم این کار رو بکنم؟
این هم کدی که برای بکاپ گیری استفاده می کنم.
'پشتیبان گیری از بانک
Dim shams As String = shamsi()
shams = shams.Replace("/", "-")
Dim str_name_backup As String = shams & "__Tala.bak"
Dim DevicePath As String
With SaveFileDialog1
.FileName = str_name_backup
.DefaultExt = "bak"
.Filter = "DateBase Backup File(*.bak)|*.bak"
.OverwritePrompt = True
End With
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
DevicePath = SaveFileDialog1.FileName
If My.Computer.FileSystem.FileExists(DevicePath) Then Kill(DevicePath)
con.Close()
con.Open()
Dim Srvcon As New ServerConnection(con)
Dim Srv As New Server(Srvcon)
' Create backup device item for the backup
Dim bdi As New BackupDeviceItem(DevicePath, DeviceType.File)
' Create the backup informaton
Dim Backup As New Backup
Backup.Devices.Add(bdi)
With Backup
'Type Of Backup
.Action = BackupActionType.Database
.BackupSetDescription = "Backup DataBase"
.BackupSetName = "DB"
.Database = con.Database.ToString()
.LogTruncation = BackupTruncateLogType.Truncate
'Backup.ExpirationDate = New DateTime(2007, 5, 1)
' Run the backup
.SqlBackup(Srv)
End With
MessageBoxFa.Show("عملیات تهیه فایل پشتیبان به موفقیت انجام شد ", _
name_me, MessageBoxButtons.OK)
Else
MessageBoxFa.Show(" انجام نشد ", name_me, MessageBoxButtons.OK)
End If
من از کدی که برای بکاپ کیری از دیتابیسم استفاده می کنم موقعی که ریستور می شه ساختار دیتابیس رو هم در صورت عوض شدن ساختار (کم و زیاد شدن فیلد ها یا نوع و هر تغییر ساختاری)تغییر می ده .
از انجای کاربران از دیتابیس قدیمی تر استفاده می کنند و با آپدیت برنامه ممکن هست تو ساختار دیتابیس هم تغییراتی ایجاد بشه. می خوام به نحوی بکاپ تهیه شود که بعدا در صورت ریستور کردن دیتابیس رو به حالت قبلی برنگرداند.
چطور می تونم این کار رو بکنم؟
این هم کدی که برای بکاپ گیری استفاده می کنم.
'پشتیبان گیری از بانک
Dim shams As String = shamsi()
shams = shams.Replace("/", "-")
Dim str_name_backup As String = shams & "__Tala.bak"
Dim DevicePath As String
With SaveFileDialog1
.FileName = str_name_backup
.DefaultExt = "bak"
.Filter = "DateBase Backup File(*.bak)|*.bak"
.OverwritePrompt = True
End With
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
DevicePath = SaveFileDialog1.FileName
If My.Computer.FileSystem.FileExists(DevicePath) Then Kill(DevicePath)
con.Close()
con.Open()
Dim Srvcon As New ServerConnection(con)
Dim Srv As New Server(Srvcon)
' Create backup device item for the backup
Dim bdi As New BackupDeviceItem(DevicePath, DeviceType.File)
' Create the backup informaton
Dim Backup As New Backup
Backup.Devices.Add(bdi)
With Backup
'Type Of Backup
.Action = BackupActionType.Database
.BackupSetDescription = "Backup DataBase"
.BackupSetName = "DB"
.Database = con.Database.ToString()
.LogTruncation = BackupTruncateLogType.Truncate
'Backup.ExpirationDate = New DateTime(2007, 5, 1)
' Run the backup
.SqlBackup(Srv)
End With
MessageBoxFa.Show("عملیات تهیه فایل پشتیبان به موفقیت انجام شد ", _
name_me, MessageBoxButtons.OK)
Else
MessageBoxFa.Show(" انجام نشد ", name_me, MessageBoxButtons.OK)
End If