الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في عمل restore لقاعدة المعطيات sqlserver2005 في vb6

بدأه said79 في 16 أكتوبر 2010 · 3 رد · 1,065 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#2

حسناً اخي , انا لا اعرف المكتبة التي تستخدمها للإتصال بالسيرفار والتعامل مع قاعدة البيانات , لكني سأعطيك كود مجرب ومضمون 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

#3

كود لعمل الـــــ 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

#4

السلام عليكم

هذا مثال لعمل

Backup & Restore

لقاعدة بيانات من نوع Sql Server

http://www.4shared.com/file/7B6rS3TU/backup__restore_SQL.html

1

منحة للخريجين وطلاب الجامعات و المعاهد

دبلومة لتخريج مبرمج متخصص في هندسة صناعة البرمجيات وتصميم وبرمجة تطبيقات الأنترنت

سبحان الله وبحمده سبحان الله العظيم

مواضيع مشابهة