مشكلة في عمل restore لقاعدة المعطيات sqlserver2005 في vb6
حسناً اخي , انا لا اعرف المكتبة التي تستخدمها للإتصال بالسيرفار والتعامل مع قاعدة البيانات , لكني سأعطيك كود مجرب ومضمون 100% بإذن الله
اولاً يجب عليك إضافة المكتبة Microsoft ActiveX Data Opjects 2.0 Library او إصدار ارقى
مع ملاحظة انك لا تحتاج لإضافتها إذا كنت قد أدرجت أداة الـ Adodc في برنامجك
ثانياً قم بإضافة أداة TextBox الى مشروعك وقم بتغيير الخصائص التالية بها :
Name = T_SQL MultiLine = True ScrollBars = 3 - Both
وهذه الاداة ستحتوي إستعلام الـ SQL الخاص بإسترجاع النسخة الإحتياطية لكبر حجمه نسبياً ,
بعد ذلك قم بوضع الإستعلام الاتي في اداة الـ TextBox والتى اسميناها T_SQL :
Declare @DB_Name varchar(50)
,@DB_ID int
,@Backup_Path varchar(max)
,@SQL varchar(max)
Select @Backup_Path='[Backup_Path]'
Select @DB_Name='[Database_Name]'
Select @DB_ID=DB_ID(@DB_Name)
Set @SQL='USE master
RESTORE DATABASE ' + @DB_Name + '
FROM DISK = N''' + @Backup_Path + '''
WITH
FILE = 1,
MOVE N''' + (Select Name FROM master.sys.master_files Where database_id=@DB_ID AND FILE_ID=1) + '''
TO N''' + (Select Physical_Name FROM master.sys.master_files Where database_id=@DB_ID AND FILE_ID=1) + ''',
MOVE N''' + (Select Name FROM master.sys.master_files Where database_id=@DB_ID AND FILE_ID=2) + '''
TO N''' + (Select Physical_Name FROM master.sys.master_files Where database_id=@DB_ID AND FILE_ID=2) + ''',
NOUNLOAD,REPLACE,STATS = 10,RECOVERY'
EXEC ('ALTER DATABASE [' + @DB_Name + '] SET OFFLINE WITH
ROLLBACK IMMEDIATE')
Exec (@SQL)ثالثاً قم بإضافة الـ Function التالي إلى مشروعك والذي سيقوم بتنفيذ الإستعلام الموجود في الاداة T_SQL والذي سيقوم بعمل Restore لملف الـ Backup الذي ستقوم بتحديده لاحقاً :
Public Function Restore_Database(Connection_String As String, Database_Name As String, Backup_Path As String) As Boolean On Error GoTo Err Dim New_Conn As New ADODB.Connection Dim SQL As String Screen.MousePointer = 11 SQL = Replace(T_SQL.Text, "[Database_Name]", Database_Name) SQL = Replace(SQL, "[Backup_Path]", Backup_Path) New_Conn.Open Connection_String New_Conn.Execute SQL Screen.MousePointer = 0 Restore_Database = True Exit Function Err: Restore_Database = False Screen.MousePointer = 0 End Function
رابعاً قم بإستدعاء دالة إسترجاع النسخة الإحتياطية بالكود التالي :
If Restore_Database(CN, "MyDatabase", "C:\MyBackup.bak") = True Then MsgBox "تمت عملية إسترجاع النسخة الإحتياطية لقاعدة البيانات بنجاح", vbInformation, "إسترجاع النسخة الإحتياطية" Else MsgBox "حدث خطأ منع البرنامج من إسترجاع النسخة الإحتياطية لقاعدة البيانات , الرجاء المحاولة في وقت لاحق", vbExclamation, "إسترجاع النسخة الإحتياطية" End If
>> مع مراعاة التالي :
1) قم بإستبدال المتغير CN بالـ Connection String الخاص بالإتصال بقاعدة البيانات
2) قم بإستبدال "MyDatabase" بإسم قاعدة البيانات التي تريد عمل Restore لها
3) قم بإستبدال "C:\MyBackup.bak" بمسار ملف النسخة الإحتياطية ( Backup ) الموجود بجهازك
----------------------------------------------------------------------------------------------------------
واخيراً ارجوا ان يفيدك الكود وإذا اردت الإستفسار عن اي جزء في الكود فأنا موجود ,,,
ولك تحياتي ,,,
It does not matter what they know about you, but what you can do, so let your work speak of you
mmghv VB6 Programmer
كود لعمل الـــــ Backup و Restore مجرب على SQL Server 2000/2005
Backup
Dim SQLSvr As SQLDMO.SQLServer
Dim Backup As SQLDMO.Backup
Set SQLSvr = New SQLDMO.SQLServer
Set Backup = New SQLDMO.Backup
SQLSvr.Connect "ServerName", "LoginName", "Password"
Backup.Database = "DatabaseName"
Backup.Files = "c:\DatabaseName.bak"
Backup.SQLBackup SQLSvr
SQLSvr.Disconnect
Set SQLSvr = Nothing
Set Backup = Nothing
Restore
Dim SQLSvr As SQLDMO.SQLServer
Dim Restore As SQLDMO.Restore
Set SQLSvr = New SQLDMO.SQLServer
Set Restore = New SQLDMO.Restore
SQLSvr.Connect "ServerName", "LoginName", "Password"
Restore.Action = SQLDMORestore_Database
Backup.Database = "DatabaseName"
Restore.ReplaceDatabase = True
Restore.Files = "c:\DatabaseName.bak"
Restore.FileNumber = 1
Restore.SQLRestore SQLSvr
SQLSvr.Disconnect
Set SQLSvr = Nothing
Set Restore = Nothing
]
تم تعديل هذه المشاركة بواسطة SOHEIL في 15 أكتوبر 2011 في 21:16
السلام عليكم
هذا مثال لعمل
Backup & Restore
لقاعدة بيانات من نوع Sql Server
http://www.4shared.com/file/7B6rS3TU/backup__restore_SQL.html
منحة للخريجين وطلاب الجامعات و المعاهد
دبلومة لتخريج مبرمج متخصص في هندسة صناعة البرمجيات وتصميم وبرمجة تطبيقات الأنترنت
سبحان الله وبحمده سبحان الله العظيم