السلام عليكم ورحمـة الله وبركاتـه
لدى مثال صغير من برمجـة الأستاذ الكبير - الحاضر الغائب - أحمد منصـور جزاهُ الله كلّ خير لنسخ واستعادة قاعدة بيانات 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, "تنبيـه"
بارك الله فيكم وجزاكم كل خير أيـن المشكلـة؛ لقد تعبتُ وأنا أبحث عن الحل؛ ولكن دون جدوى ؟!!!!