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

سؤال بخصوص ال backup و setup

بدأه الإدلبي_87 في 5 ديسمبر 2010 · 7 رد · 1,580 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدي برنامج محاسبة بالدلفي وقاعدة بيانات Sql server 2000

ولقد قمت بكتابة الكود التالي لعمل نسخة إحتياطية:

SaveDialog1.Execute  ; 
ADOCommand1.CommandText := 'BACKUP DATABASE alyamama TO  DISK = '''+SaveDialog1.FileName+'.bak''' ; 
ADOCommand1.Execute ;

ولم يظهر أية رسالة خطأ عند التنفيذ

وقمت بكتابة الكود التالي لإستعادة النسخة:

OpenDialog1.Execute  ; 
ADOCommand1.CommandText := 'RESTORE DATABASE alyamama FROM  DISK = '''+OpenDialog1.FileName+'.bak''' ; 
ADOCommand1.Execute ;

ولكن ظهرت الرسالة التالية عند التنفيذ:

790707089.jpg

فأفيدوني جزاكم الله خيراً

ولدي سؤال آخر هو كيف أعمل setup لهذا البرنامج بعد الإنتهاء منه؟

تم تعديل هذه المشاركة بواسطة الإدلبي_87 في 5 ديسمبر 2010 في 21:41

#2

السلام عليكم...

هناك خطأ بسيط في الكود قد يمنع تنفيذ أمر الاستعادة:

عند إنشائك للنسخة الاحتياطية تقوم بإضافة الامتداد bak لاسم الملف الذي يعيده الـ SaveDialog. يعني لو أدخلت في الـ SaveDialog الاسم 555 كاسم للملف فإن اسم ملف الـ backup سيكون:

555.bak

لكن عند تحديد اسم ملف للاستعادة منه فإن الـ OpenDialog سيعيد اسم الملف كاملاً بامتداده، و عندما تضيف إليه الامتداد bak بالكود فإن الاسم يصبح هكذا:

555.bak.bak

و بالتالي فأنت تشير إلى ملف غير موجود (لاحظ ذلك في رسالة الخطأ المعروضة).

** إذن عند الاستعادة يكون الكود كالتالي:

ADOCommand1.CommandText := 'RESTORE DATABASE alyamama FROM  DISK = ''' + OpenDialog1.FileName + '''';
// أو هكذا
ADOCommand1.CommandText := 'RESTORE DATABASE alyamama FROM  DISK = ' + QuotedStr(OpenDialog1.FileName);

أي بعدم إضافة امتداد من عندك.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

جزاك الله خيراً أخي najy_zl

ولكن بعدما قمت بتصحيح الكود ظهرت لي الرسالة التالية:

643133328.jpg

فأرجو المساعدة وجزاكم الله خيراً...

#4

السلام عليكم...

عند إنشاء نسخة احتياطية (Backup) لا توجد مشكلة إذا كانت قاعدة البيانات مفتوحة ببرنامج آخر، و لكن عند الاستعادة (Restore) يجب أن لا تكون فاعدة البيانات قيد الاستخدام عند تنفيذ أمر الاستعادة، سواء من داخل برنامجك أو بواسطة برامج أخرى مثل الـ Enterprise Manager التابع لـ SQL Server نفسه (مثلاً قد يكون لديك جدول أو View في قاعدة البيانات مفتوح في وضعية التصميم).

* يعني: عند الاستعادة (Restore) يجب أن تكون قاعدة البيانات غير مستعملة أو مفتوحة بواسطة أي برنامج.

يمكنك وضع أمر الاستعادة ضمن كتلة try...except لتعرض رسالة خاصة من عندك و قد تطلب فيها من المستخدم إغلاق أية برامج تستعمل قاعدة البيانات حالياً. و طبعاً لا تنس إغلاق الاتصال بقاعدة اليانات من داخل برنامجك نفسه.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#5

السلام عليكم ورحمة الله وبركاته...

شكراً أخي najy_zl على المعلومات

ولكن أنا عندما أقوم بعمل إستعادة لقاعدة البيانات لا يكون Enterprise Manager مفتوح

هذا أولاً

وثانياً كيف يمكن أن أغلق الإتصال بقاعدة البيانات من داخل برنامجي خصوصاً وأن البرنامج يحوي على صفحات كثير ويحوي الكثير من Adotable و Adoquery

فماذا سوف أفعل ؟؟ أفيدوني جزاكم الله خيراً

#6

السلام عليكم ورحمة الله وبركاته

أخي العزيز يجب أن تجعل Actoin بالقيمة fsalse لكل ado و q

أو يمكن استخدام أداة ADoO Connection كصلة وصل ببين قاعدة البيانات وجميع الـ ado ةفي هذه الحالة يمكن فصل ADO Connection فقط قبل استعادة النسخة

#7

اخي الكريم استخدم ado connection ثانية من اجل الاسترجاع . وقبل ان تبدأ عملها

اجعل ال adoconnection الاولى مغلقة

ado connection1.close

ado connection1 .free
#8

السلام عليكم

انا قمت بذلك بل قمت ببرنامج منفصل للاسترجاع فقط ولكنني لم استطع الاسترجاع ولكن احب ان اسألك اليس الاتصال الآخر الذي اشرت به للاخ السائل هو نفسه انشغال لقاعدة البيانات بإتصال ما؟؟؟ ام ان الاتصال يكون فقط ببيئة الداتابيز دون تعيين قاعدة البيانات المقصودة ؟؟؟

- ضف لسؤال الاخ كيف يمكنني عمل الباكاب بشروط محددة (نسخ الكل , آخر التحديثات ,....الخ).

أرجو ان ان تفصل لنا حتى اتمكن من الاسترجاع علماً تمكنت من عمل الباكاب ولكنه لا يتحقق من وجود البيانات مسبقاً او لا

محبكم

بعض الاضافات على الاسئلة على هذا الرابط

تم تعديل هذه المشاركة بواسطة الحلفاوي في 24 فبراير 2011 في 18:50

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