delphi4arab منتديات دلفي للعرب

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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