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

نسخة كاملة : إنشاء نسخة احتياطية لقاعدة Absolute
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4
السلام عليكم ورحمة الله تعالى وبركاته
لدي قاعدتين من أبسوليت إسمهما
Cartes.Abs و Dossiers.Abs
واردت ان احفظهما في مجلد إسمه Archive
وإنشاء مجلد جديد كلمة اردة حفظ القاعدة مع إضافة السنة التي حفظت بها القاعدة للمجلد حتى يصبح المجلد الذي ينشأ إسمه Archives_2010
علما ان السنة التي يتم بها الحفظ تكون بمكون SpinEdit1
وحتى عملية الإسترجاع تكون من المجلد الموجود بالأرشيف واستعادت القاعدين الى البرنامج مع حذف القاعدتين السابقتين الموجودة داخل البرنامج وايضا السنة التي يتم بها الإسترجاع تكون من خلال مكون SpinEdit2
وعليكم السلام ورحمة الله وبركاته
موضوع سبق طرحه، من هنا:
طريقة عمل ال Backup لقاعدة بيانات من نوع Absolute Database
بالتوفيق.
kachwahed كتب :موضوع سبق طرحه، من هنا
مشكور أخي
وجدت هذا المثال في احد المنتديات وهو يتعلق بالحفظ الأرشفة وقمت بالتعديل عليه
لقد حاولت التعديل على المرفق ولكن لم افلح
عملية الحفظ تنفذ لكن المجلد المطلوب اضافته ينشأء خار المجلد الموجود داخل البرنامج
ومن المفروض ينشأ المجلد داخل المجلد الموجود داخل مجلد البرنامج والمسمى Archive
يعني المجلد المطلوب لإنشاءه هو المسمى Archive مضاف له السنة
ثانيا : كما قلت لك ان الملف ينشأ لكن ينشأ خارج البرنام ولا يوجد بداخله ملف قاعدة البيانات
لماذا
حاول تنفذ البرنامج وانظر اين يضع لك المجلد

ثالثا عملية الإسترجاع لم استطيع والمطلوب تعاونكم معي بالكود الخاص بالإسترجاع طبعًا هذا بعد تصليح عملية الحفظ

السلام عليكم
القيت نظرة سريعة على المرفق وبه اخطاء كثيرة...
-
انسى المرفق وفكر جيدا
انت تريد نسخ قاعدة بيانات من نوع Absolute
لا تحتاج لانشاء مجلد جديد لكل سنة لملف واحد
إنسخ ملف قاعدة البيانات باسم جديد حسب السنة

TesteCopy.abs اسم قاعدة البيانات (غيرها حسب مشروعك)
SpinEdit1 يحوى على سنة قاعدة البيانان
للحفظ
كود :
CopyFile(PChar('TesteCopy.abs'),PChar(SpinEdit1.Text),True);
لاسترجاع
كود :
CopyFile(PChar(SpinEdit1.Text),PChar('TesteCopy.abs'),False);
ملاحظة: يجب غلق عادة البيانات (وكل الجداول) قبل وبعد اي عملية حفظ او استرجاع
وبالتوفيق

لا عليك أستاذي ربما لا احسن التعبير
اما بعد
لقد وضعت الكود كما قلت لي على مثال جديد
وفي زر الحفظ وضعت الكود الأول بهذه الطريقة وكانت طريقة الحفظ ناجحة
PHP كود :
procedure TForm1.Button1Click(SenderTObject);
begin
ABSDatabase1
.Close;
copyfile(pchar('testecopy.abs'),pchar(spinedit1.text),true);
ABSDatabase1.Open;
end
اما بالنسبة لعملية الإسترجاع وضعت الكود الثاني وبهذه الصفة لكن لم تنجح معي
PHP كود :
ABSDatabase1.Close;
copyfile(pchar(spinedit1.text),pchar('testecopy.abs'),false);
ABSDatabase1.Open
وانا باإنتظار لنصائحكم
إقتباس :الكود الثاني وبهذه الصفة لكن لم تنجح معي

لم ينجع ماذا ؟ ظهر خطأ ؟ ما هو؟
دائما حاول اعطاء أكبر در من المعلومات عن الخطأ
لا تقل لم ينجح وتسكت!
لقد اعدت محاولة أخرى
وعندما احفظ نسخة من قاعدة المعطيات اقوم بحذف سجل او سجلين واضغط على زر حفظ
ثم انتقل الى عملية استرجاع النسخة التي قمت بحفظها اجد الديبقريد فارغ
وعندما اغلق البرنامج واعيد تشغيله اجد المعطيات بالديبقريد قد عادت
وفي بعض الأحيان تخرج لي رسالة خطا قاضطريت لإرفاق المثال
قم بتنفيذه وسترى
جزاكم الله عنا كل خير

السبب طريقة تعاملك مع قاعدة البيانات
خذها كقاعدة: لا تغير خصاص قاعدة البيانات والجداول من دلفي بجعلها True
قم بذلك برمجيا، بالحدث OnCreate لاول Form او DataModule افتح قاعدة البيانات ثم الجداول
وبالحدث OnClose أو OnDestroy اغلق الجداول ثم القاعدة
العمل النظيف يجنب الكثير من المشاكل
لقد تركت قاعدة البيانات كما كانت
وكتبت في الحدث
Oncreate للفورم الأول
PHP كود :
With DModule1 do begin
ABSTable1
.Open;
end
وفي الحدث OnClose للفورم الأول
PHP كود :
with DModule1 do begin
ABSTable1
.close;
end
وحاولت اجرب فيكل الفورم
ومسحت ما مان مكتوب في الحدث create للـ DModule1
والحدث Distroy ايضا للـ DModule1
واكتفيت بما كتبته في الحدث للفورم الأول
وباقي الفورم
لك المشكل هذه الرسالة
صورة الرسالة بالمرفق

الخط ان Form الذي اساخدمتها تنشا قبل الDataModule يعني ABSTable1 غير موجودة اثنا حدوث OnCreate للForm
بما انك تستخدم DataModule استخدم حدثيه OnCreate/OnDestroy
ولا تنسى اغلق ايضا
Database
الصفحات : 1 2 3 4