السلام عليكم
أسأل عن طريقة أرشفة لقاعدة البيانات
و أنا عندي طريقة
و لكن لم أعرف كيف أقوم بها أو أبرمجها و هي كالتالي
لدينا قاعدة البيانات و اسمها db1
نريد أرشفتها في المسار التالي d:\archive
بحيث يتم إنشاء مجلد بتاريخ النظام الحالي:laugh:
و يضع نسخة من قاعدة البيانات بداخله و يقو بهذه العملية كل خمس ثواني
فيقوم بهذه الحالة بتبديل ملف القاعدة فقط من جديد مع التعديلات المدخلة عليها
و لو تغير التاريخ مثلا أصبح 2/1/2010 في اليوم التالي مثلا إذا أراد أن يؤرشف فشكل إجباري و طبيعي سينشأ مجلد جديد لأن التاريخ قد تغير فلن يقوم باستبدال ملف القاعدة بل سينسخ نسخة جديدة في مجلد جديد و هكذا
وشكر
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
18-01-2010, 04:38 PM
(آخر تعديل لهذه المشاركة: 27-09-2010, 04:55 PM بواسطة kachwahed.)
وعليكم السلام
تحتاج إلى ذلك:
- الحصول على تاريخ اليوم سهل باستخدام 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;
الآن قم بمحاولة 
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
شكرا ألك و يعطيك ألف ألأف عافية:bye1:
أخي سؤالي الثاني هو كيف أستطيع استخراج اسم قاعدة البيانات من مكون ADOTable
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
18-01-2010, 08:20 PM
(آخر تعديل لهذه المشاركة: 01-02-2011, 11:07 PM بواسطة kachwahed.)
مثال:
كود :
ShowMessage(ADOConnection1.Properties.Item['Data Source'].Value);
يمكن الوصول إلى عناصر ConnectionString من خلال اسم العنصر (Item) مباشرة أو برقمه الترتيبي (0،1،2...)
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
شكرا ألك لقد ساعدتني في إزاحة هذا الهم
و أتمنا لك التوفيق
:bye1:
:monster1:
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
إقتباس :شكرا ألك لقد ساعدتني في إزاحة هذا الهم
العفو أخي، نحن هنا في الخدمة.
وأنت، ألا تطعلنا على ما توصلت إليه ؟ ربما يستفيد منه غيرك
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
إن شاء الله أخي حالما أبدأ مشروعي
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
إقتباس : نسخة من قاعدة البيانات بداخله و يقو بهذه العملية كل خمس ثواني
5 ثواني مدة قصيرة جدا وعمليا لاتكفي لنسخ قاعدة بيانات
اضافة انها تاخذ مساحة كبيرة بالقرص الصلب...
الاحسن عمل ذلك عند بداية تنفيذ البرنامج او بعد ايقافه
او حسب المشروع اخذ نسخة احتياطية كل يوم/اسبوع/شهر
وبالتوفيق
طيب أخي B.M.AbdelAziZ أتحفنا برأيك و مشورتك دلنا على الأفضل
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
إقتباس :الاحسن عمل ذلك عند بداية تنفيذ البرنامج او [COLOR="Red"]بعد ايقافه
في حدث OnClose للنموذج الرئيسي، لا بد من عمل Disconnect أولا.[/COLOR]
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...