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=7193)



هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - ALG2009 - 03-09-2015

السلام عليكم

كما يعلم الجميع ان برنامج الدلفي ينفذ الأوامر إلى بعد تنفيذه كالإضافة والحذف وغيرها في قواعد البيانات

هل هناك حل يمكنني من التحكم في قواعد البيانات (حذف ،إضافة .... ) تنفيذ أمر بشرط التاريخ مثلا . دون أن نشغل البرنامج
هل من طريقه فعالة لعمل ذلك


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - Mr.DOS - 04-09-2015

صباح الخير

إقتباس : تنفيذ أمر بشرط التاريخ مثلا

وضح اكثر اخي


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - ALG2009 - 04-09-2015

بمعنى أن البرنامج لا اشغله يوميا ووضعت شرط محدد بتاريخ لو فات ذالك اليوم لن ينفذ الأمر أي التعليمه لأن اليوم 01 ليس الشهر وليس السنه قلت اليوم =1

ولكن لقد خممت بأن أضيف خانه في قاعده البيانات خانه(نعم أو لا) بمعنى ترى هل نفذت التعليمه في اليوم الأول من الشهر أم لا إن نفذت اضع في الخانه نعم وإن لم تنفذ أضع في الخانه لا وبما أنها لا مع تنفيذ البرنامج أي OnCreate للفورم تنفذ التعليمه ما رأيكم في هذا الحل

بالمناسبه كيف أقارن باليوم أي المقارنه باليوم فقط لأني لم أفهم Decodedate كيف تعمل أم هناك امر آخر


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - Mr.DOS - 04-09-2015

ولله لم افهم ماتريد بالضبط

لكن يبدو انك تريد حصر بعض خصائص البرنامج اثناء التشغيل لايام محددة وكما قلت اليوم الاول 1 ؟

عموما حتى ولو حصرت الامر اي الغيت عدم امكانية الاضافة والتعديل الخ .. كل يوم 1 من اول شهر

يكفي تغير تاريخ النظام . لتخطيها


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - Mr.DOS - 04-09-2015

إقتباس : بالمناسبه كيف أقارن باليوم أي المقارنه باليوم فقط لأني لم أفهم Decodedate كيف تعمل أم هناك امر آخر

شاهد الموضوع هنا


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - ALG2009 - 04-09-2015

Mr.DOS كتب :ولله لم افهم ماتريد بالضبط

لكن يبدو انك تريد حصر بعض خصائص البرنامج اثناء التشغيل لايام محددة وكما قلت اليوم الاول 1 ؟

عموما حتى ولو حصرت الامر اي الغيت عدم امكانية الاضافة والتعديل الخ .. كل يوم 1 من اول شهر

يكفي تغير تاريخ النظام . لتخطيها

ما أريده بالضبط هو لديا قاعده بيانات بها حقل واريد الانقاص منه والشرط الذي اضعه وهو يتم الانقاص في اول ايام الشهر فقط اي الفاتح من كل شهر

فلو فرضنا انا البرنامج لم يشتغل في الفاتح في شهر معين وهذا سيؤدي الى عدم الانقاص من ذلك الحقل لأن الشرط لن يتحقق لأني لم أشغل البرنامج في الفاتح من الشهر

فما أرده أن يتفذ الأمر في الفاتح من كل شهر دون تشغيل البرنامج

توضيح أكثر عندي برنامج مصمم بالدلفي افتحه كل يوم وفي الفورم الرئيسي في OnCreate
أكتب الكود
إذا كان اليوم = 1 إذن أنقص 5 مثلا من الحقل كذا

فلنفرض أني لم أشغل البرنامج لن ينقص من الحق لأني لم أشغل الرنامج في الفاتح من الشهر

فأردت أن انفذ الأمر في أول الشهر حتى و إن لم اشغل(افتح) البرنامج

فإهتديت إلى زياده خانه(نعم أو لا) لأتحقق إذا تم الانقاص أم لا في الفاتح من الشهر إذا تم الانقاص سأضع نعم وإن لم يتم الاتقاص فأضع لا في الخانه وعند تشغيل البرنامج سيتحقق من الخانه هل تم الانقاص أي فتح البرنامج في أول الشهر أم لا إذا كانت لا فسينقص ويضع نعم بدلا لا في الخانه

ما رأيك بهذا الحل أو هناك حل أو فكره أحسن من هذا الحل؟


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - Mr.DOS - 04-09-2015

طيب

ان صادف التاريخ بالصدفة الاول من الشهر نفذ كود الانقاص

وان لم يصادف هناك عدة حلول

قم بإضافة حقل من نوع Date يسجل اخر تاريخ تم تعديل الحقل (تاريخ الانقاص)

والعب بدوال التاريخ الامثلة كثيرة كأن تنقص تاريخ التشغيل الحالي من اخر تاريخ الانقاص (المسجل في قاعدة البيانات)

وتعمل فارق الايام ان كان يساو او اكبر من 30 يوم

نفذ الكود المطلوب ...


هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - ALG2009 - 04-09-2015

بارك الله فيك

سأحاول العمل على ذلك وبما أني جديد في الدلفي المشكل أني لا أعرف التعامل مع دوال التاريخ

هناك DecodeDate و Encoddate و Monthoftheday وغيرهاا سأحاول البحث على دروس وأمثلة تطبيقية

في المنتدى تجد تطبيق الدوال دون شرحها وكيف تعمل


RE: هل ممكن تنفيذ أمر في قاعده البيانات دون تشغيل البرنامج؟ - Samer Assil - 02-12-2015

بالرغم من ان أجابتي متأخرة عدة شهور .. ولكن هذه اول مرة أقرأ السؤال .
حسب ما فهمت من السؤال وتعليقات لأخوة ..
المطلوب تنفيذ تلقائي لأجراء متعلق بقواعد البيانات وذلك عند توقيت محدد . يضبط سابقا... دون تشغيل البرنامج ( او بعبارة أخرى .. لا يشترط أن يكون البرنامج مفتوح وقت تنفيذ هذا الأجراء ) .إذا ما فهمته صحيح فالأجابة هي:
أحد الحلول المذكورة في التعليقات وهي اجراء التنفيذ عند onCreate . ووضع مؤشر يدل على أن الأجراء تم تنفيذه لتجنب التنفيذ اكثر من مرة .. هذا الحل ممكن ومقبول . لكن هناك حل أخر وهو في قواعد البيانات نفسها وليس في البرنامج . فقواعد البيانات أغلبها يؤمن هذه الخدمة .
ببساطة . قاعدة البيانات تقوم بتنفيذ اجراء مكتبوب بـ SQL . تستطيع ضبط وقت التنفيذ وكم مرة تريد تنفيذه .. وهل هو دوري كل اسبوع مثلا وهكذا ..
راجع قاعدة البيانات المستخدمة .
في SQL Server أسم هذه الخدمة Schadual Jobs.
في MySQL . اسمها Schadual Events.
ملاحظة .. هذه الخدمة ليست موجودة بالضرورة في كل قواعد البيانات ..