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

نسخة كاملة : حول أرشفة قاعدة بيانات أكسس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2

علي

السلام عليكم
أسأل عن طريقة أرشفة لقاعدة البيانات
و أنا عندي طريقة
و لكن لم أعرف كيف أقوم بها أو أبرمجها و هي كالتالي
لدينا قاعدة البيانات و اسمها db1
نريد أرشفتها في المسار التالي d:\archive
بحيث يتم إنشاء مجلد بتاريخ النظام الحالي:laugh:
و يضع نسخة من قاعدة البيانات بداخله و يقو بهذه العملية كل خمس ثواني
فيقوم بهذه الحالة بتبديل ملف القاعدة فقط من جديد مع التعديلات المدخلة عليها
و لو تغير التاريخ مثلا أصبح 2/1/2010 في اليوم التالي مثلا إذا أراد أن يؤرشف فشكل إجباري و طبيعي سينشأ مجلد جديد لأن التاريخ قد تغير فلن يقوم باستبدال ملف القاعدة بل سينسخ نسخة جديدة في مجلد جديد و هكذا

وشكر
وعليكم السلام
تحتاج إلى ذلك:
- الحصول على تاريخ اليوم سهل باستخدام Now وتحويله إلى String بواسطة DateToStr
- ثم إنشاء مجلد بتاريخ اليوم، مثال:
كود :
uses Dialogs; begin {$I-} MkDir('c:\windows'); {$I+} if IOResult <> 0 then MessageDlg('Cannot Create Directory!', mtWarning, [mbOK], 0) else MessageDlg('Directory Created.', mtInformation, [mbOK], 0); end;
- استخراج مسار الملف من ConnectionString للمكون TADOConnection مثلا.
- نسخ ملف قاعدة البيانات، مثال نسخ الملفات:
PHP كود :
{
  
The CopyFile function copies an existing file to a new file.


 
CopyFile(
  
lpExistingFileName : PChar, // name of an existing file
  
lpNewFileName : PChar,      // name of new file
  
bFailIfExists : Boolean);   // operation if file exists

bFailIfExists:
  
Specifies how this operation is to proceed if a file of the same name as
  
that specified by lpNewFileName already exists.
  If 
this parameter is TRUE and the new file already exists, the function fails.
  If 
this parameter is FALSE and the new file already exists,
  
the function overwrites the existing file and succeeds.
}

var
  
fileSource, fileDest: string;
begin
  fileSource 
:= 'C:\SourceFile.txt';
  
fileDest := 'G:\DestFile.txt';
  
CopyFile(PChar(fileSource), PChar(fileDest), False);
end; 
الآن قم بمحاولة Smile
بالتوفيق.

علي

شكرا ألك و يعطيك ألف ألأف عافية:bye1:

أخي سؤالي الثاني هو كيف أستطيع استخراج اسم قاعدة البيانات من مكون ADOTable
مثال:
كود :
ShowMessage(ADOConnection1.Properties.Item['Data Source'].Value);
يمكن الوصول إلى عناصر ConnectionString من خلال اسم العنصر (Item) مباشرة أو برقمه الترتيبي (0،1،2...)
بالتوفيق.

علي

شكرا ألك لقد ساعدتني في إزاحة هذا الهم
و أتمنا لك التوفيق
:bye1:
:monster1:
إقتباس :شكرا ألك لقد ساعدتني في إزاحة هذا الهم
العفو أخي، نحن هنا في الخدمة.
وأنت، ألا تطعلنا على ما توصلت إليه ؟ ربما يستفيد منه غيرك Smile

علي

إن شاء الله أخي حالما أبدأ مشروعي
إقتباس : نسخة من قاعدة البيانات بداخله و يقو بهذه العملية كل خمس ثواني
5 ثواني مدة قصيرة جدا وعمليا لاتكفي لنسخ قاعدة بيانات
اضافة انها تاخذ مساحة كبيرة بالقرص الصلب...
الاحسن عمل ذلك عند بداية تنفيذ البرنامج او بعد ايقافه
او حسب المشروع اخذ نسخة احتياطية كل يوم/اسبوع/شهر
وبالتوفيق

علي

طيب أخي B.M.AbdelAziZ أتحفنا برأيك و مشورتك دلنا على الأفضل
إقتباس :الاحسن عمل ذلك عند بداية تنفيذ البرنامج او [COLOR="Red"]بعد ايقافه
في حدث OnClose للنموذج الرئيسي، لا بد من عمل Disconnect أولا.[/COLOR]
الصفحات : 1 2