السلام عليكم ورحمة الله تعالى وبركاته
لدي قاعدتين من أبسوليت إسمهما
Cartes.Abs و Dossiers.Abs
واردت ان احفظهما في مجلد إسمه Archive
وإنشاء مجلد جديد كلمة اردة حفظ القاعدة مع إضافة السنة التي حفظت بها القاعدة للمجلد حتى يصبح المجلد الذي ينشأ إسمه Archives_2010
علما ان السنة التي يتم بها الحفظ تكون بمكون SpinEdit1
وحتى عملية الإسترجاع تكون من المجلد الموجود بالأرشيف واستعادت القاعدين الى البرنامج مع حذف القاعدتين السابقتين الموجودة داخل البرنامج وايضا السنة التي يتم بها الإسترجاع تكون من خلال مكون SpinEdit2
kachwahed كتب :موضوع سبق طرحه، من هنا
مشكور أخي
وجدت هذا المثال في احد المنتديات وهو يتعلق بالحفظ الأرشفة وقمت بالتعديل عليه
لقد حاولت التعديل على المرفق ولكن لم افلح
عملية الحفظ تنفذ لكن المجلد المطلوب اضافته ينشأء خار المجلد الموجود داخل البرنامج
ومن المفروض ينشأ المجلد داخل المجلد الموجود داخل مجلد البرنامج والمسمى Archive
يعني المجلد المطلوب لإنشاءه هو المسمى Archive مضاف له السنة
ثانيا : كما قلت لك ان الملف ينشأ لكن ينشأ خارج البرنام ولا يوجد بداخله ملف قاعدة البيانات
لماذا
حاول تنفذ البرنامج وانظر اين يضع لك المجلد
ثالثا عملية الإسترجاع لم استطيع والمطلوب تعاونكم معي بالكود الخاص بالإسترجاع طبعًا هذا بعد تصليح عملية الحفظ
لا عليك أستاذي ربما لا احسن التعبير
اما بعد
لقد وضعت الكود كما قلت لي على مثال جديد
وفي زر الحفظ وضعت الكود الأول بهذه الطريقة وكانت طريقة الحفظ ناجحة
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
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