silmoooo بتاريخ: 17 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 محتاج اعمل TRIGGERS وظيفتها انها تعمل بعد INSERT تحديث BALANCE اللي موجود في جدول اسمه SUPPLIERS عن طريق AMOUNT,PAID,CREDIT موجودين في جدول اسمه PURCHASE_BILLS لكم منا كل تقدير وإحترام . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
eslam elbyaly بتاريخ: 17 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 كده مينفعش تتعلم حاجة علي فكرة , اقرأ عن التريجرز , واعمل حاجة , وحاول تشغلها وقلنا مش شغالة ليه , واحنا نساعدك في تعديلها 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AhmedOmar بتاريخ: 17 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 (معدل) create or replace trigger upd_balance after insert on PURCHASE_BILLS for each row begin update suppliers set balance = <your update > where suppliers.foreign key column = :new.primary key column; end; هو ممكن يكون كده بس ياريت توضيح المطلوب اكثر تم تعديل 17 أغسطس 2014 بواسطة AhmedOmar 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
silmoooo بتاريخ: 17 أغسطس 2014 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 CREATE OR REPLACE TRIGGERS UPDATE_SUPPLIERS_BALANCE AFTER INSERT ON PURCHASE_BILLS VD NUMBER(20); BEGIN SELECT AMOUNT INTO VD FROM purchase_bills WHERE supplier_id=SUPPLIERS.SUPPLIER_ID; IF VD>:OLD.AMOUNT THEN UPDATE SUPPLIERS SET BALANCE= balance+AMOUNT WHERE sUPPLIERS.supplier_id= pURCHASE_BILLS.supplier_id; dbms_output.put_line(BALANCE||' _ '||AMOUNT||' _ '||PAID); ELSE RAISE_APPLICATION_ERROR(20001,'NO INSERTING NEW'); END UPDATE_SUPPLIERS_BALANCE; ده كود انا حاولت انفذه مش راضي وحاوللت بأكتر من كود ومش نافع ثانيا انا د ي اول مشاركة ليا وانا مش بطلب شئ غير لما اكون غلبت على امري علي العموم دي اول واخر مشاركة علشان خاطرك يا هندسة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AhmedOmar بتاريخ: 17 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 اولا ما فيش حاجة اسمها اول و اخر مشاركة طالما عايز تسال فى حاجة اسال فيها هو بس ممكن يكون بيحمسك شوية ما فيش ضغائن ما بينا بالنسبة للكود هو ليه حضرتك مستخدم if فيه ثانيا مش حنعوض عن الجدول الجديد باسمه لكن بالقيم old و new ثالثا حضرتك عاطى قيمة لل vd اللى هى ال amount ازاى عاوزه يبقى اكبر من قيمته و انه قيمة بردو و ما ينفعش نحط اسماء الاعمدة داخل امر dbms_output.put_line لازم نعوض عنها بمتغير لو كانت قيمة واحدة او بكيرسور لو عاوز اطبع اكثر من قيمة هو ده التريجر اللى انا جربته و تم انشائه عادى لكن شيلت حاجات كثير منه جربه و عدل فيه زى ما يناسبك ولو عايز حاجة اسال و خلى صدرك رحب كده CREATE OR REPLACE TRIGGER UPDATE_SUPPLIERS_BALANCE AFTER INSERT ON PURCHASE_BILLS for each row declare VD number; BEGIN SELECT AMOUNT INTO VD FROM purchase_bills WHERE supplier_id=:old.SUPPLIER_ID; UPDATE SUPPLIERS SET BALANCE= balance+VD WHERE SUPPLIERS.supplier_id= :new.supplier_id; END UPDATE_SUPPLIERS_BALANCE; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
eslam elbyaly بتاريخ: 17 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 اول واخر مشاركة ايه يا عم , امال لو شفت الناس ع الـ otn forum , ده انا فضلت اسأل 3 ايام سؤال وفهمي للكود مكنش هيفدني بأي حاجة , ومحدش راضى يجاوبني الا لما افهم الكود بيعمل ايه . انا مقصدش حاجة انا بقلك لمصلحكتك , مقصدتش غير الخير يعني , وبعدين اولا لازم تقولنا الكود مش عايز يتنفذ ليه , يعني ايه الايرور الي بيطلعلك ايه عشان نعرف ايه المشكلة , تاني حاجة طبيعي ان الكود ميتنفذش من غير مشوف الايرور لانك كاتب CREATE OR REPLACE TRIGGERS , يعني حاطط S زيادة , طبيعي ميتنفذش صلحها بقى وقلنا ايه الايرور الي بيطلع . 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
silmoooo بتاريخ: 17 أغسطس 2014 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2014 الموضوع طلع بسيط . بس المشكلة والعصبية اللي كانت عندي أني قعدت فيها وقت طويل حتي الكود الصحيح اللي انا كاتبة ده عملت من قبل بس فعلا كان فيه S زيادة علشان كده مكنش بينفذ . شاكرين ومقدرين . وأنا فعلا بتأسف . وأنت دخلت فيا شمال ههههههههههههههههه بس يلا محدش بيتعلم ببلاش -------------------------------------------------------------------------- CREATE OR REPLACE TRIGGER UPDATE_SUPPLIERS_BALANCE AFTER INSERT ON PURCHASE_BILLS FOR EACH ROW BEGIN UPDATE SUPPLIERS SET BALANCE=balance+:NEW.AMOUNT WHERE supplier_id=:NEW.supplier_id; END UPDATE_SUPPLIERS_BALANCE; ------------------------------------------------------------------------------- اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
eslam elbyaly بتاريخ: 18 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 18 أغسطس 2014 ربنا يوفقك يا باشا , وانا بعتذر لو كنت فهمتني غلط 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ahmed_elmoslmany بتاريخ: 20 أغسطس 2014 تقديم بلاغ مشاركة بتاريخ: 20 أغسطس 2014 اولا انت عندك ammount =paid+credit وال credit هو عباره عن رصيد المورد اللى هى ال balance فى جدول suppliers ودا بيبقى الرصيد اللى ليه والتريجر هنا سهل وبسيط لان انا شغال فى مشروع مشابه وهو بكل بساطه create or replace trigger ....................after insert on purchase_billsfor each rowbeginupdate suppliersset balance=balance+:new.creditwhere supplier_id=:new.supplier_idend; شوف دا كدا ولو فى حاجه انا معاك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.