delphi4arab منتديات دلفي للعرب

نسخة كاملة : خطأ في النسخ الإحتياطي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته...
لقد قمت بكتابة الكود التالي لعمل نسخة إحتياطية:
PHP كود :
SaveDialog1.Execute  ;
ADOCommand1.CommandText := 'BACKUP DATABASE alyamama TO  DISK = '''+SaveDialog1.FileName+'.bak''' ;
ADOCommand1.Execute ; 

ولم يظهر أية رسالة خطأ عند التنفيذ
وقمت بكتابة الكود التالي لإستعادة النسخة:
PHP كود :
OpenDialog1.Execute  ;
ADOCommand1.CommandText := 'RESTORE DATABASE alyamama FROM  DISK = '''+OpenDialog1.FileName+'.bak''' ;
ADOCommand1.Execute ; 

ولكن ظهرت الرسالة التالية عند التنفيذ:
[صورة: 790707089.jpg]

فأفيدوني جزاكم الله خيراً..
نسيت أن أذكر أن قاعدة البيانات Sql server2000
و عليكم السلام و رحمة الله و بركاته

OpenDialog1.FileName تأخذ أيضا إمتداد الملف , يعني لا داعي لإظافة الإمتداد
عن الإستدعادة !!
بالتوفيق,,
جزاك الله خيراً أخي TF6M
ولكن بعد ما أصلحت الكود ظهرت لي الرسالة التالية:
[صورة: 643133328.jpg]
ً
قم باغلاق الاتصال بملفات قواعد البيانات قبل القيام بالنسخ الاحتياطي
السلام عليكم
إقتباس :قم باغلاق الاتصال بملفات قواعد البيانات قبل القيام بالنسخ الاحتياطي
أو أضف إلى الـ CommandText

كود :
ALTER DATABASE alyamama SET SINGLE_USER WITH ROLLBACK IMMEDIATE
قبل RESTORE
و
كود :
ALTER DATABASE alyamama SET MULTI_USER
بعد OpenDialog1.FileName


بالتوفيق
لدي نفس مشكلة الاخ
قمت بعمل ما سبق ولكن لا يعمل استعادة قاعدة البيانات

الكود ينفذ بدون مشاكل ولكن لا يعمل استعادة قاعدة البيانات

هذا هو الكود الذي كتبته

كود :
OpenDialog1.Execute ; ADOCommand1.CommandText := 'ALTER DATABASE PERSONNEL_DATA SET SINGLE_USER WITH ROLLBACK IMMEDIATE '; ADOCommand1.CommandText := 'RESTORE DATABASE PERSONNEL_DATA FROM DISK = ''' + OpenDialog1.FileName + ''''; ADOCommand1.CommandText := 'ALTER DATABASE PERSONNEL_DATA SET MULTI_USER'; ADOCommand1.Execute ;
السلام عليكم

CommandText ليست sql.add
لذا أخذت آخر قيمة معطاة
كود :
ADOCommand1.CommandText := 'ALTER DATABASE PERSONNEL_DATA SET MULTI_USER';
جرب التالي
كود :
mystr:='ALTER DATABASE PERSONNEL_DATA SET SINGLE_USER WITH ROLLBACK IMMEDIATE '+ ' RESTORE DATABASE PERSONNEL_DATA FROM DISK = '''+ OpenDialog1.FileName + ''''+ ' ALTER DATABASE PERSONNEL_DATA SET MULTI_USER'; ADOCommand1.CommandText :=mystr;
بالتوفيق
السلام عليكم ورحمة الله وبركاته...
أخي الكريم Lam.Abdeldjalil عندما طبقت هذا الكود:
كود :
mystr:='ALTER DATABASE PERSONNEL_DATA SET SINGLE_USER WITH ROLLBACK IMMEDIATE '+ ' RESTORE DATABASE PERSONNEL_DATA FROM DISK = '''+ OpenDialog1.FileName + ''''+ ' ALTER DATABASE PERSONNEL_DATA SET MULTI_USER'; ADOCommand1.CommandText :=mystr;

توقف البرنامج عن العمل فما هي المشكلة؟؟
و عليكم السلام و رحمة الله و بركاته

المشكلة أنك لم تغير PERSONNEL_DATA إلى إسم قاعدة بياناتك !!

+ تفصيل من المفروض هذه تعمل دون مشكل Smile :
كود :
use master ALTER DATABASE [COLOR=DarkGreen]mydb [/COLOR]SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE [COLOR=DarkGreen]mydb [/COLOR]FROM DISK =[COLOR=Red]'c:\ba.bak' [/COLOR] with [COLOR=Magenta]Replace[/COLOR] ALTER DATABASE [COLOR=DarkGreen]mydb [/COLOR]SET MULTI_USER
يمكن متابعة كل خصائص الـ Restore ( إسترجاع في ملف آخر ، إنشاء مرآة ...) هنا
كود :
http://msdn.microsoft.com/en-us/library/ms186858.aspx
بالتوفيق
الصفحات : 1 2