بتاريخ: 28 سبتمبر 201411 سنة comment_255266 السلام عليكم و رحمة الله و بركاتهكنت عاوز شرح لتريجرات On-error on-message و استخدامهم و علي انهي مستوي في الفورمو اتمني حد يقولي ما هو و استخدام كل من error-message & error-codeerror-typeو هل يمكن اعمل ليهم insert في قاعدة البيانات تم تعديل 28 سبتمبر 201411 سنة بواسطة ahmedmohamedali تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة comment_255271 السلام عليكم اخي الكريمالفرق بين on-message وon-trigger هوon-message : يفير هذا التريجير لاظهار الرسائل التى تكون بمثابة notify لك ولا يحدث من خلالها وقف لتفيذ الكود او حدوث اكسبشن form_trigger_failureبمعني اكثر توضيحا حضرتك لو عملت فورمة بسيطة جدا من جدول واحد خالي من البيانات ودوست على Execute query تشاهد رسالة FRM-40350: Query caused no records to be retrieved. ويكمل الكود بتاعم مفيش مشاكل بدون raise FORM_TRIGGER_FAILUREوالمثال التالي يوضح ما أقصد go_block('employees'); do_key('execute_query'); message('Query_done'); message('Query_done'); هنا لو كان جدول ال employees فارغ تظهر رسالة الnotify بالاسفل ويكمل الكود طبيعي ويظهر رسالة " Query_done"on-error ;يفير هذا التريجر لاظهار تبيهات الأخطاء التي يحدث فيها raise from_trigger_failure ولا يحدث استمرار لتفيذ الكودمثال declare x char(1); begin select 'Test' into x from dual; end; message('done');message('done'); هنا تم حجز متغير X حجمه حرف واحد فقطعند وضع كلمة حجمها كبير مثل Test فيه يفير تريجر on-error واكسبشن raise form_trigger_failureوالرسالة done لا تظهر و استخدامهم و علي انهي مستوي في الفورم ومن الممكن استخدامهم على مستوى كل بلوك او مستوى الفورم ما هو و استخدام كل من error-message & error-codeerror-type فى تريجر on-error يتم عمل تعديل عمل التريجر بدلا من اظهار رقم الخطأ و الرسالة فقط لاى كود آخر انت تريدهفبامكانك تغيير نص الرسالة الافتراضية من اوراكل if error_code='40735'then message ('Error Occurred , Call Technical Support'); elsif error_code='40508' then message('Unable to insert record'); message('Unable to insert record'); else message(error_type||'-' error_code||'-'||error_text); تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة comment_255279 مع التحفظ علي on-error ;يفير هذا التريجر لاظهار تبيهات الأخطاء التي يحدث فيها raise from_trigger_failure ولا يحدث استمرار لتفيذ الكود الـ on-error تريجر بيستخدم عشان يستبدل خطأ (ايرور) او اكتر من خطأ او اي خطأ باوامر تانية انت بتكتبها , واي تريجر بيبدأ بـ on بيستخدم لاستبدال الاكشن الاصلية , يعني on-error , كل الي هيعمله انه بدل ما يظهر ايرور هيعمل حاجة تانية , on-delete , بدل ما يمسح هيعمل حاجة تانية . اكسبشن يعني "ايرور" , الاكسبشن اسمه "form_trigger_failure" , Raise ده امر اظهار الاكسبشن . الاخطاء الي بتظهر مش بتتسبب في اظهار "form_trigger_failure" , لان ده ايرور وده ايرور تاني خالص تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة كاتب الموضوع comment_255280 شكرا يا جماعة بجد جدا شرح اكتر من وافي للجادين و جاري التجربةجعله الله في ميزان حسناتكم تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة كاتب الموضوع comment_255281 شكرا يا جماعة بجد جدا شرح اكتر من وافي للجادين و جاري التجربةجعله الله في ميزان حسناتكم تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة كاتب الموضوع comment_255282 بس في سؤال تاني يعني ممكن لو في تريجر on-errorاعمل insert للخطا باستخدام جمل Error-code -- error-type في جدول و اعمل لهم رسائل معالجة لكل خطا علشان المستخدم يفهمو كذلك مع on-delete & on-update تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة comment_255283 جميل ملاحظتك باشمهندس اسلامكنت اقصد توضيح الفرق بين الerror , message عموما كما وضحت ان الmessage مجرد notify اما الايرور فهو خطأ يترتب عليه عدم استمرار تنفيذ الكود كما فى المثال الموضح سابقابالطبع باشمهندس Ahmed Mohamed Aliتستطيع عمل مثل الdictionary الخاص بك بارقام الاخطاءويجيب من الداتا بيز الجمل المرادفه اللى انت مسجلها تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة كاتب الموضوع comment_255284 شكرا يا بش مهندس محمد علي شرحك الوافي و تم التجربة تمام و كمان جربتها مع alertشكرا يا بش مهندس إسلام علي الاضافات المفيدة و المعلومات القيمة تقديم بلاغ
بتاريخ: 28 سبتمبر 201411 سنة comment_255286 انا مش عارف انت عايز تعمل انسرت للايرورز ليه لما يطلعوا , ما تعمل جدول وحط فيه ارقام الايرورز والرسايل الي عايزها , وفي الـ on-error declare n number ; M_NAME VARCHAR2(90) ; BEGIN n:= error_code ; select message_NAME INTO M_NAMEFROM YOUR_TABLE WHERE ERROR_NUM = N ; MESSAGE(M_NAME) ; MESSAGE(M_NAME) ; END ; تقديم بلاغ
بتاريخ: 29 سبتمبر 201411 سنة كاتب الموضوع comment_255302 جامدة جدا الفكرة دي يا بش مهندس اسلام انت بسط فكرتي و حلوة بحيث كل خطا نكون جهزنا له الحل بتاعه او الرسالة الي عاوزينها له تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.