delphi4arab منتديات دلفي للعرب
حول أرشفة قاعدة بيانات أكسس - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : حول أرشفة قاعدة بيانات أكسس (/showthread.php?tid=1526)

الصفحات: 1 2


حول أرشفة قاعدة بيانات أكسس - علي - 18-01-2010

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

وشكر


حول أرشفة قاعدة بيانات أكسس - kachwahed - 18-01-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
بالتوفيق.



حول أرشفة قاعدة بيانات أكسس - علي - 18-01-2010

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

أخي سؤالي الثاني هو كيف أستطيع استخراج اسم قاعدة البيانات من مكون ADOTable


حول أرشفة قاعدة بيانات أكسس - kachwahed - 18-01-2010

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



حول أرشفة قاعدة بيانات أكسس - علي - 18-01-2010

شكرا ألك لقد ساعدتني في إزاحة هذا الهم
و أتمنا لك التوفيق
:bye1:
:monster1:


حول أرشفة قاعدة بيانات أكسس - kachwahed - 18-01-2010

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



حول أرشفة قاعدة بيانات أكسس - علي - 18-01-2010

إن شاء الله أخي حالما أبدأ مشروعي


حول أرشفة قاعدة بيانات أكسس - محمد عبد العزيز - 19-01-2010

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



حول أرشفة قاعدة بيانات أكسس - علي - 19-01-2010

طيب أخي B.M.AbdelAziZ أتحفنا برأيك و مشورتك دلنا على الأفضل


حول أرشفة قاعدة بيانات أكسس - kachwahed - 20-01-2010

إقتباس :الاحسن عمل ذلك عند بداية تنفيذ البرنامج او [COLOR="Red"]بعد ايقافه
في حدث OnClose للنموذج الرئيسي، لا بد من عمل Disconnect أولا.[/COLOR]