الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار بخصوص تغيير قيمة في الداتابيس تلقائياً

بدأه hadi2005 في 10 مارس 2013 · 9 رد · 958 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته،،،

 

عندي استفسار بسيط بخصوص تغيير قيمة تلقيائياً ... لدي السيناريو التالي :

 

يوجد لدي برنامج و موقع الكتروني يعملو على نفس الداتابيس ...

 

يتم عمل طلب معين عن طريق الموقع ويرسل تلقائياً بالإيميل .. 

 

يمكن مراجعة الطلب عن طريق البرنامج ..

 

يوجد حقل لل status في الداتابيس في جدول معين  ... عند عمل الطلب تكون active .

 

المطلوب انه بعد فترة معينة (لنفترض 7 ايام) يتحول الحقل ال status = expired  .

 

 

ماهي افضل طريقة لعمل ذلك ؟؟

ما امكانية عمل ذلك عن طريق ال triggers ؟

هل توجد طرق افضل ؟؟

 

 

شاكر ومقدر لكم مساعدتكم 

 

تحياتي للجميع :)

#3

أخي الفاضل

السلام عليكم ورحمة الله وبركاتة

يوجد دالة في SQL Server تحقق لك المطلوب باذن الله اسمها DATEADD ويمكنك استخدام هذه الدالة لحساب تواريخ الصلاحية

مثال علي الدالة

 

Select EmpCode,EmpName,BirthDayDate,
(Case when Dateadd(Day,7,BirthDayDate)<= GETDATE() then 'Expire' else 'Not Expire' end ) as Status 
from employee

وتظهر النتيجة كالتالي

 

post-46243-0-56072400-1362978090.jpg

 

بالتوفيق

 

 

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 11 مارس 2013 في 08:03

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4

الاخوان KARIMSOFT و محمد فؤاد تركي .... 

الف شكر لكم لتجاوبكم السريع ...

 

استاذي محمد ...

حسب ما فهمت من ردك انه لا داعي لعمل حقل status في الجدول . ونخليه حقل افتراضي .

اعتقد كدا احسن و اقل للأخطاء اللي ممكن تصير ...

 

طيب سؤال آخر "اتحملنا شويتين :) " :

 

ماهي احسن طريقة لفحص حقل التاريخ بشكل مستمر من خلالي برنامجي (لغه c#) ؟؟

هل ال timer هو افضل حل ؟ هل يوجد حل أفضل ؟؟

 

هل ممكن الtimer يسبب لي بطء في البرنامج ؟ لأن البرنامج يتصل بالداتابيس عن طريق الانترنت ! 

 

الله يعطيكم العافية ويقويكم لفعل مايحبه ويرضاه

#5

للرفع :)

#6
اقتباس

ماهي احسن طريقة لفحص حقل التاريخ بشكل مستمر من خلالي برنامجي (لغه c#) ؟؟

هل ال timer هو افضل حل ؟ هل يوجد حل أفضل ؟؟

 

هل ممكن الtimer يسبب لي بطء في البرنامج ؟ لأن البرنامج يتصل بالداتابيس عن طريق الانترنت ! 

 

السؤال غير واضح ما الذي تقصده بفحص حقل التاريخ

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#7

أستاذي محمد ،،

 

آسف لعدم التوضيح ..

 

مقصدي هو ان البرنامج يحب ان يقوم بإجراء معين عندما يتخطى احد التواريخ الموجودة في قاعدة البيانات سبعة ايام ،( مثلاً اعطاء Message Box ).

 

كيف يتم قراءة التواريخ من قاعدة البيانات بشكل مستمر .. بحيث اذا تخطى احد التواريخ سبعة ايام يظهر message box للمستخدم ؟؟؟

 

 

هل ال timer هو افضل حل ؟ هل يوجد حل أفضل ؟؟

 

هل ممكن الtimer يسبب لي بطء في البرنامج ؟ لأن البرنامج يتصل بالداتابيس عن طريق الانترنت ! 

 

اتمنى ان يكون السؤال واضح

تم تعديل هذه المشاركة بواسطة hadi2005 في 12 مارس 2013 في 15:51

#8

يمكنك استخدام الاجراءات المخزنه Stored procedure لعرض الاستعلام المطلوب ثم تقوم بتصميم فورم أو شاشة تظهر للمستخدم عندما يقوم فتح البرنامج كل مرة تنبهه بانه يوجد مثلا 3 اصناف مثلا انتهت صلاحيتهم وبالضغط علي الزر الموجود علي الفورم يعرض التقرير بكامل تفاصيلة

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#9

اوكي ... مقصدك ان يكون التشييك على التواريخ عند كل دخول للبرنامج .. صحيح ؟

 

على افتراض ان المستخدم لا يغلق البرنامج ... لن يظهر له التنبيه !! صحيح ؟

 

شكرا لك عزيزي على مساعدتي ... تقبل خالص تحياتي

#10

ادرج timer واجعل قيمة خصية الInterval هي 3600000 وهذا يعني تنفيذ كود الtimer كل ساعة وهذا مناسب ولا ياثر في سير البرنامج

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…