بتاريخ: 19 أكتوبر 200619 سنة comment_81100 السلام عليكماريد قفل الادخال(عدم امكانية الادخال) في جدول محدد بعد وصول عدد السجلات فيه رقم محددمثلا مائة سجل ارجو المساعدة ولكم مني جزيل الشكر تقديم بلاغ
بتاريخ: 19 أكتوبر 200619 سنة comment_81106 اكيد ممكن declare v_id number; bigen select nvl(max(AC_ID),0) into v_id from ACTEVITY; :AC_ID:=v_id+1; if v_id >100 then message('nay thing'); message('nay thing'); else insert into ACTEVITY values(:AC_ID,:AC_NAME, :TYPE_ID,:CONF_ID, :SERVANT_ID,:AC_TIME, :ACT_DATA); commit; end if; end; ممكن تجرب و تقول لىىىىىىىىايهاب وجدى تقديم بلاغ
بتاريخ: 19 أكتوبر 200619 سنة comment_81122 توجد طريقة اخرى وهي قفل الادخال في الشاشةممكن تضع الكود قبل الاستعلام وكذلك قبل التخزينpre-query وتريجر pre-insert declare Cursor c is select count(v_id) from employees; d_count number; begin open c; fetch c into into d_count; if d_count>= 100 then SET_BLOCK_PROPERTY ('BLOCK_NAME', INSERT_ALLOWED, PROPERTY_FALSE); message ('you can not add in this forms'); message ('you can not add in this forms'); rollback; clear_form; else SET_BLOCK_PROPERTY ('BLOCK_NAME', INSERT_ALLOWED, PROPERTY_true); end if; end; بهذه الطريقة تعرف عدد السجلات قبل الاضافة لأنه ممكن ان يتغير ال id او يكون الجدول لايحتوي على سيريلوممكن تستخدم طريقة الاخ hobaa بحالة انه الاضافة في الفورم يدويا يعني عن طريق الاكواد مو عن طريق الشاشة مباشرة مع تغيير بسيط في الكود ان تضع بدل ال max فانكشن ال countفالطريقة التي تفضل فيها الاخ hobaa لا تنفع الا اذا كان الاضافة في الشاشة عن طريق الكود وكذلك ان يكون فيها سيريل نمبر غير قابل للحذف تقديم بلاغ
بتاريخ: 21 أكتوبر 200619 سنة كاتب الموضوع comment_81239 الاخ hobaa شكرا على المشاركة الرائعة ، ولكني كنت اريد القفل من خلال الشاشة-----الاخ اسامة شكرا على المشاركة الرائعة ، هذا بالضبط ما كنت اريده ، لك خالص تحياتي وتقديري تقديم بلاغ
بتاريخ: 21 أكتوبر 200619 سنة comment_81256 فعلآ اخى العزيز اسامه انا اعمل منول و يوجد مولد منول لل id ايهاب وجدى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.