منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تعديل في نسخ واستعادة قاعدة بيانات SQL
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمـة الله وبركاتـه
لدى مثال صغير من برمجـة الأستاذ الكبير - الحاضر الغائب - أحمد منصـور جزاهُ الله كلّ خير لنسخ واستعادة قاعدة بيانات SQL
ولكن لم أستطع حقيقةً أن استخدمه في مشروعـي، والمطلــوب:
هل يمكن التعديـل على هذا المثال ليتلاءم مع مشروعـي
اســم السيرفر : OMRAN
اسـم قاعـدة البيانات : library
جملـة الاتصـال :
كود :
Public Sub Connect_DataBase()
On Error Resume Next
' ==================
If cn.State = 1 Then cn.Close
On Error GoTo erorr
cn.Open "Provider=SQLOLEDB.1;Integrated SECURITY=SSPI;Persist SECURITY Info=False;Initial Catalog=library  ;Data Source=" & ServerName
activation = True
Exit Sub
erorr:
MsgBox "خطاء في اسم بالسيرفر", , "بيانات السيرفر"
activation = False
  Exit Sub

End Sub
!!!!!!!
عجيب وهل الأمر صعب بهذا البرنامج القديم هههههه
تمت عمليــة النسخ بنجــــــــــاح، وما زالت عمليـــــــة الاستعادة يشوبها بعض الأخطـاء في الكود
وعن نجـــاح العمليـــة سيتم إرفاق المثال إن شاء الله تعالى
هـذا كود نسخ قاعدة البيانات يشتغل تمام

كود :
Private Sub Backup()
' ÕÈ ÇáäÓÎ
CmdBackup.Enabled = False
CmdRestor.Enabled = False

Dim a As String
On Error GoTo herr
 
If DB.State = 1 Then DB.Close

Call bance_mydb

   Dim RecAffected As Long

   DB.Execute "SELECT name FROM master.dbo.sysdevices WHERE name = N'library_Bup'", RecAffected
 
   If RecAffected = 0 Then

      DB.Execute " exec sp_addumpdevice 'disk','library_Bup','" & App.Path & "\library.pac'"

    ElseIf MsgBox(" Ëã ÇáÚËÜæÑ Úáì äÓÎÜÜÉ ÇÍÊíÇØíÜÉ ÃÎÜÑì" & vbCrLf & " ? åÜá ÊÑíÜÏ ÇÓÊÈÏÇá ÇáäÓÎÜÜÜÉ ÇáÍÇáíÜÜÉ ", vbYesNo + vbCritical, " ÅÍÜÜÑÇÁ ÇáäÓÜÎ ...   ") = vbNo Then
           MsgBox " áÇ ÊæÌÜÏ äÓÎÜÉ ÇÍÊíÇØíÜÉ ÌÏíÜÏÉ ", vbInformation
           
CmdBackup.Enabled = True
CmdRestor.Enabled = True

           Exit Sub
     
   End If
        ElseIf MsgBox(" ثم العثـور على نسخــة احتياطيـة أخـرى" & vbCrLf & " ? هـل تريـد استبدال النسخـــة الحاليــة ", vbYesNo + vbCritical, " إحــراء النسـخ ...   ") = vbNo Then
           MsgBox " لا توجـد نسخـة احتياطيـة جديـدة ", vbInformation

CmdBackup.Enabled = True
CmdRestor.Enabled = True
               
Exit Sub
herr:
MsgBox Err.Description, vbCritical

End Sub

المشكلة في كود الاستعادة

كود :
Private Sub Restore()
' صب الاستعادة
Dim Restore_Command As String
Dim Server_Name As String
Dim Database_Name As String
Dim BackupFileName As String
Dim Command_Result As String

Server_Name = "."
Database_Name = "library"
BackupFileName = App.Path & "\library.pac"

Restore_Command = "SQLCMD -E -S " & Server_Name & " -Q " & Chr$(34) & "RESTORE DATABASE " & Database_Name & " FROM DISK='" & BackupFileName & "'" & Chr$(34)

CmdRestor.Enabled = False
DoEvents

Command_Result = ExecuteCommand(Restore_Command)
DoEvents

If InStr(1, LCase$(Trim$(Command_Result)), "restore database successfully") <> 0 Then
  MsgBox "تمت عمليــة الاستعادة بنجــاح", vbOKOnly + vbInformation + vbMsgBoxRight, "إجــراء الاستعادة"

Else
  MsgBox " عذرا لم تتم عملية الاستعادة ... حدث خطأ ", vbExclamation + vbMsgBoxRight, "تنبيـه"

End If

CmdRestor.Enabled = True

End Sub

ولكن تظهر الرسالة التالية
كود :
  MsgBox " عذرا لم تتم عملية الاستعادة ... حدث خطأ ", vbExclamation + vbMsgBoxRight, "تنبيـه"

بارك الله فيكم وجزاكم كل خير أيـن المشكلـة؛ لقد تعبتُ وأنا أبحث عن الحل؛ ولكن دون جدوى ؟!!!!