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

وشكر
الرد
#2
وعليكم السلام
تحتاج إلى ذلك:
- الحصول على تاريخ اليوم سهل باستخدام 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
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#3
شكرا ألك و يعطيك ألف ألأف عافية:bye1:

أخي سؤالي الثاني هو كيف أستطيع استخراج اسم قاعدة البيانات من مكون ADOTable
الرد
#4
مثال:
كود :
ShowMessage(ADOConnection1.Properties.Item['Data Source'].Value);
يمكن الوصول إلى عناصر ConnectionString من خلال اسم العنصر (Item) مباشرة أو برقمه الترتيبي (0،1،2...)
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#5
شكرا ألك لقد ساعدتني في إزاحة هذا الهم
و أتمنا لك التوفيق
:bye1:
:monster1:
الرد
#6
إقتباس :شكرا ألك لقد ساعدتني في إزاحة هذا الهم
العفو أخي، نحن هنا في الخدمة.
وأنت، ألا تطعلنا على ما توصلت إليه ؟ ربما يستفيد منه غيرك Smile
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#7
إن شاء الله أخي حالما أبدأ مشروعي
الرد
#8
إقتباس : نسخة من قاعدة البيانات بداخله و يقو بهذه العملية كل خمس ثواني
5 ثواني مدة قصيرة جدا وعمليا لاتكفي لنسخ قاعدة بيانات
اضافة انها تاخذ مساحة كبيرة بالقرص الصلب...
الاحسن عمل ذلك عند بداية تنفيذ البرنامج او بعد ايقافه
او حسب المشروع اخذ نسخة احتياطية كل يوم/اسبوع/شهر
وبالتوفيق
الرد
#9
طيب أخي B.M.AbdelAziZ أتحفنا برأيك و مشورتك دلنا على الأفضل
الرد
#10
إقتباس :الاحسن عمل ذلك عند بداية تنفيذ البرنامج او [COLOR="Red"]بعد ايقافه
في حدث OnClose للنموذج الرئيسي، لا بد من عمل Disconnect أولا.[/COLOR]
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم