بتاريخ: 4 يوليو 201015 سنة comment_196029 السلام عليكم ورحمة الله و بركاتهلدي فورم يحتوي حقلين(ID ,Name) قمت باضافه Check box و Button ..عندما يقوم المستخدم بتحديد عدد من السجلات عن طريق ال Check box ثم يضغط على ال Button سوف تحذف السجلات التي اختارها عن طريق ال Check box ..المشكله في الكود انه يحذف بعض السجلات و يترك بعضها.ارجوا منكم الحل..الفورم و كود انشاء الجدول موجود في المرفقاتو شكرا Check delete.rar تقديم بلاغ
بتاريخ: 5 يوليو 201015 سنة comment_196034 السلام عليكم ------------مرفق الفورم بعد التعديل الصحيح Check delete_AFTER_UPDATED.rar تقديم بلاغ
بتاريخ: 5 يوليو 201015 سنة كاتب الموضوع comment_196062 اخي العزيزاشكرك على جهودك القيمهلقد عرفت الحل و الحمد للهحيث ان الاوراكل عندما تحذف سجل فانها تتحرك اتوماتيكيا الى السجل التالي ..و في الكود الذي كتبته فانه يتحرك للسجل التالي بدون مقارنه الشرط هل ان القيد قد تم مسحه ام لا مما يؤدي الى تجاوز قيد يلي القيد الممسوح وفي هذه الحاله لو قمت بتاشير 10 سجلات متتاليه فانه سوف يمسح الاول و يترك الثاني ثم يمسح الثالث و يترك الرابع و هكذا...الخلذلك يجب معرفه ان القيد تم مسحه او لا فاذا تم المسح فلايتحرك للفيد التالي حيث ان المؤشر ذاتيا قد تحرك عند عمليه المسحاما اذا لم يمسح فيحرك للسجل التاليو فيما يلي الكود:الكود السابق :BEGIN GO_BLOCK('T2'); -- FIRST GO TO THE BLOCK FIRST_RECORD; -- START FROM THE FIRST RECORD LOOP IF :T2.C1='1' THEN -- IF CHECK DELETE_RECORD; -- DELETE RECORD END IF; EXIT WHEN :SYSTEM.LAST_RECORD='TRUE'; -- EXIT NEXT_RECORD; -- GO TO NEXT RECORD END LOOP; -- END LOOP; END; الكود الصحيح: BEGIN GO_BLOCK('T2'); -- FIRST GO TO THE BLOCK FIRST_RECORD; -- START FROM THE FIRST RECORD LOOP IF :T2.C1='1' THEN -- IF CHECK DELETE_RECORD; -- DELETE RECORD else NEXT_RECORD; -- GO TO NEXT RECORD END IF; if :SYSTEM.LAST_RECORD='TRUE' then if :T2.C1='1' then DELETE_RECORD; end if; exit ; end if; END LOOP; -- END LOOP; END; تم تعديل 5 يوليو 201015 سنة بواسطة ammarcontrol تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.