بتاريخ: 18 أبريل 201016 سنة comment_189829 بسم الله الرحمن الرحيم اولاً انا اعمل علي اوركل 9 اي وفورم 6 اي لدي جدولين الاول باسم reg به قيد مفتاح اساسي والثاني باسم payed حاولت ان اعمل تريقر علي sql عند عمل ادخال علي الجدول الاول يقوم بتحويل بعض الحقول علي الجدول الثاني لكن لم انجح ارجوا اعطائي الحل واذا كان ممكن اعمل التريقر علي مستوي الفورم مع الزر حفظ ...ماهو الكود ..... هذه هي الجداول =====================================create table reg(num number(5),id varchar2(15),sname varchar2(200),gender varchar2(2),tel number(15),area varchar2(20),r_date date not null,constraint emp_id_pk primary key (id));======create table payed(num number(5),id varchar2(15),fpay number(10),fdate date,spay number(10),sdate date ,total number(10));====هذا هي محاولتي لعمل تريقر علي SQl.......create or replace trigger reg_paybefore insert asbegininsert into payed(num,id)values(num,id);end; table.txt تقديم بلاغ
بتاريخ: 18 أبريل 201016 سنة comment_189830 create or replace trigger moving_data after insert on reg begin insert into reg (id , num) select id ,num from payment ; end ; تقديم بلاغ
بتاريخ: 18 أبريل 201016 سنة comment_189834 السلام عليكم ورحمة الله وبركاتهاذا كانت الفورم تعمل على جدول واحد فقط reg وليس جدولين يمكن عمل الاتىاولا بالنسبه لجملة ال insert ارجو التعديل بحيث تصبح على الشكل التالى begininsert into payed(num,id)values(:num,:id);end;ثانيا قد تحتاجين الى وضع الكود فى ال post insert وبهذا بعد ان تتم عملية الحفظ مباشرة سوف يقوم بعملية تسجيل الداتا فى الجدول الثانى * هذا الحل على مستوى الفورم وليس الداتابيز تقديم بلاغ
بتاريخ: 19 أبريل 201016 سنة comment_189890 الاخ هشام اعطا الحل لكن هناك مشكله في الكود وهي في كل لمه تدخل على الجدول الاول يقوم بادخال كل البيانات من الجدول الاول الى الجدول الثانيجرب هذا الكود create or replace trigger moving_data after insert on reg for each row begin insert into play (id , num) values(:new.id,:new.num( end; تقديم بلاغ
بتاريخ: 19 أبريل 201016 سنة كاتب الموضوع comment_189907 بسم الله الرحمن الرحيم الاخوة الكرام والله شاكرة لكم جزيل الشكر وربنا يضع اعمالك في ميزان حسناتكم ..آمين ... كل الحلول المزكورة عملت معي تماماً بس عندي سؤال بسيط عند عمل زر حزف من النموزج reg اللي هو ماستر من المفترض يحزف الحقل المرتبط به في الجدول pay شو اسوي تقديم بلاغ
بتاريخ: 19 أبريل 201016 سنة comment_189926 بسم الله الرحمن الرحيم السلام عليكم و رحمة الله و بركاته الاخت الفاضلة او الاخ الكريم ....اذا اردت ان تصمم زر يتم فيه حذف الاساسي و المتعلق به هناك اكثر من طريقة .- الطريقة الاولي في حالة ان تكون الفورمة Wizard بمعني ان يكون البلوك علي الفورمة به خاصية Database data block واخدة قيمة yes و العناصر الموجودة علي الفورمة لها خاصية Database item واخد القيمة yes ...في هذه الحالةيجب التأكد من وجود Constraint بين الجدولين الاساسي و الفرعي و بعدها عمل زر يكتب فيه كلمة Delete_record فيقوم بمسح الاساسي و بالتالي الفرعي ايضا لوجود علاقة بين الجدولين و لكن يجب ان FK Constraint في الحالة Cascade لكي يسمح بالحذف للاساسي و الفلرعي معه .- - الطريق الثانية في حالة ان تكون الفورمة manual بمعني ان يكون البلوك علي الفورمة به خاصية Database data block واخدة قيمة no و العناصر الموجودة علي الفورمة لها خاصية Database item واخد القيمة no ...في هذه الحالةيجب التأكد من وجود Constraint بين الجدولين الاساسي و الفرعي و بعدها عمل زر يكتب فيه جملة الحذف التالية :[يسار]Delete reg Where id = :id ;Commit; فيقوم بمسح الاساسي و بالتالي الفرعي ايضا لوجود علاقة بين الجدولين و لكن يجب ان FK Constraint في الحالة Cascade لكي يسمح بالحذف للاساسي و الفلرعي معه . - الطريقة الثالثة:هو التأكد من بناء FK Constraint في حالة Cascade و الاعتمادج عل يشريط الادوات الذي يظهر في الفورمة عند التشغيل و الايقونة خذفأسألكم الدعاء [/يسار] ______________________.doc تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.