كيف تغير التاريخ تلقائيا في قاعدة بيانات
#4
لو أنك تستخدم SQL Server لكان الأمر بسيط جداً باستخدام SQL Server Agent, حيث أنه سيقوم بتنفيذ تعليمة SQL للتعديل على الجداول التي تريد و الحقول التي تريد حسب ال Schedule  الذي تريد.

ولكن بما أنك تستخدم أكسس, فعليك بالقيام بهذه العملية بشكل يدوي, إما عن طريق الدلفي بشكل مباشر أو أن تكتب استعلام داخل ملف الأكسس و تقوم بتنفيذه بشكل دوري.

1- عن طريق الدلفي:
يمكن وضع الكود الخاص بالتعديل على حقول التاريخ ضمن تايمر إذا كان برنامجك يعمل بإستمرار, أو أن تضع الكود في حدث on show مثلاً للفورم المتعلق بهذه القضية.
سنفترض أنك تريد التعديل على كامل السجلات:

كود :
 ADOTable1.DisableControls;  ADOTable1.First;  while not ADOTable1.Eof do  begin    if ADOTable1.FieldByName('your date field name').AsDateTime = now then    begin      ADOTable1.Edit;      ADOTable1.FieldByName('your date field name').AsDateTime :=        ADOTable1.FieldByName('your date field name').AsDateTime + 7;      ADOTable1.post;    end;    ADOTable1.Next;  end;  ADOTable1.EnableControls;
2- استعلام الأكسس و تنفيذه:
عليك بإنشاء query داخل ملف الأكسس و تسميه مثلاُ setnewdate وتضع به الكود التالي:
كود :
UPDATE table1 SET mydate = mydate+7 WHERE mydate=date();
الآن كل ما عليك هو تشغيله بشكل دوري من داخل الدلفي, و لعمل ذلك يمكنك استخدام ADOCOMMAND و تضع في خاصية Commandtext اسم الquery الذي أنشئته:
كود :
ADOCommand1.CommandText := 'setnewdate'; ADOCommand1.Execute;

وبهذا سيتم تنفيذ الquery ليؤثر على سجلات الجدول حس المطلوب.
وفقكم الله.
[-] كل من 1 user says قال شكرا ل PLANSHARP على المشاركة المفيدة
  • wadoud
الرد


الردود في هذا الموضوع
RE: تغير التاريخ تلقائيا في قاعدة بيانات - بواسطة PLANSHARP - 23-03-2016, 09:50 AM

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


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