بتاريخ: 25 أبريل 201313 سنة comment_235411 السلام عليكم ورحمة الله عندي برنامج محاسبي وأريد أن اقوم بفحص التاريخ المدخل في كل شاشة من شاشات النظام ( حقل التاريخ في شاشة المبيعات والمشتريات ومرتجعاتها والسندات...) على أن يكون التاريخ في الفتره المفتوحه الحاليه وأنا لاأريد أن اقوم بكتابة نفس Trigger في كل شاشة فأريد طريقه لكتابة Trigger واحد أقوم بتمرير التاريخ إليه ويقوم فحصه وإرسال رسالة خطأ إذا لم يكن في نفس الفتره. أو أريد أي حل أو طريق ثانيه تقديم بلاغ
بتاريخ: 25 أبريل 201313 سنة comment_235419 ببساطة اعمل database procedure كالآتي: Create procedure chk_dt(dt1 date) is begin if dt1 not between date1 and date2 then raise_application_error(-20101,'التاريخ المدخل خطأ'); end if; end; طبعاً date1 و date2 هي أطراف الفترة الحالية. (لا أعلم إن كانت مخزنة عندك في جدول آخر).الآن تستطيع منادة ال procedure داخل كل form ( يمكنك مناداتها من pre-insert trigger) تقديم بلاغ
بتاريخ: 27 أبريل 201313 سنة comment_235456 اعمل في البداية كورسر لحقل التاريخ المخزن في القاعدة تقديم بلاغ
بتاريخ: 28 أبريل 201313 سنة كاتب الموضوع comment_235513 لكن عند عمل البروسيجر من قاعدة البيانات كيف أظهر الرساله من على الفورم تقديم بلاغ
بتاريخ: 29 أبريل 201313 سنة comment_235563 فعلاً ... إذاً لا تعمل precedure اعمل function ترجع لك مثلاً صفر إذا التاريخ ضمن الفترة و 1 إذا التاريخ خارج الفترة على الشكل التالي: Create function chk_dt(dt1 date) return number is begin if dt1 not between date1 and date2 then return 1; else return 0; end if; end; الآن داخل الفورم على pre-insert اكتب التالي (مع وضع التاريخ المراد فحصه مكان dt1): if chk_dt(dt1) = 1 then message('التاريخ المدخل خطأ'); end if تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.