بتاريخ: 6 سبتمبر 200718 سنة comment_109308 اخوتى واخواتى الاعزاءعندى فورم يحتوى على بلوك وهذا البلوك مبنى على جدول فى قاعة البياناتهذا الجدول هو جدول رئيسي ومرتبط مع جدول فرعى اخر (primary & forign key)المشكلة هى اننى عندما احاول حذف سجل من الجدول الرئيسيى لا يتم الحذف وتظهر رسالة فى شريط الحالة مفادها انة لابد من مسح السجلات المرتبطة اولا (childs)فاضطر الى الذهاب الى الجدول الاخر ( حيث يوجد فى فورم اخرى) وقوم بمسح السجلات المرتبطة ثم اذهب الى الفورم الرئيسي واقوم بمسح السجل الرئيسيىمن فضلكم اريد طريقة اقوم بها بمسح السجل الرئيسي والسجلات الفرعية المرتبطة مرة واحد عند الضغط على button اقوم بانشاءةولكم جزيل الشكر تقديم بلاغ
بتاريخ: 6 سبتمبر 200718 سنة comment_109317 طريقة 1:أخي بإمكانك تغير في شرط ال foreign key بحيث يصبح كالتاليمثال: لو بدي لما احذف قسم من جدول ال dept يحذف الموظفين التابعين للقسم بعمل التاليبغير في شرط ال foreign key في جدول ال empبحذ الشرط القديم alter table emp drop constraint fk_deptno; alter table emp add constraint emp_deptno_fk foreign key(deptno) references dept(deptno) on delete cascade; وبهيك بحذف الموظفين التابعين للقسم المحذوف تقديم بلاغ
بتاريخ: 6 سبتمبر 200718 سنة comment_109318 يا أخي الكريمإذهب إلى بلوك الماستر في النفيقيتر(F3) ومن ثم على Relationsالخاصة بالماستر الذي تريد الحذف منه ومن ثم (F4) ومن ثم اذهب على خاصية Delete Record Behavior ومن ثم اختار CASCADINGملاحظة:-Isolated:- تسمح لك بالحذف من الماستر دون تأثير على الديتيل Noisolated:-لاتسمح لك بالحذف من الماستر قبل الديتيل حيث يجب عليك الحذف من الديتيل ثم الماستر(Default Value)Cascading:-تسمح لك بالحذف من الماستر وبعد الحذف من الماستر تحذف من الديتيل مباشرة تقديم بلاغ
بتاريخ: 6 سبتمبر 200718 سنة comment_109319 طريقة 2:انك تكتب جملة الحذف لجدول ال detail داخل ال زر الحذف او داخل pre_delete trigger كالتالي: delete from emp where deptno = :dept.deptno; delete_record; commit; والله أعلم تقديم بلاغ
بتاريخ: 6 سبتمبر 200718 سنة كاتب الموضوع comment_109321 الف الف شكر ياخوتى فى العروبةلقد انتهت المشكلة بفضل الله اولا ثم بمساعدتكم ثانيا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.