الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف تتعامل مع Transaction Trigger او مايسمى التريقرات

Featured Replies

بتاريخ:

السلام عليكم روحمه الله وبركاته

اليوم سوف اقوم بشرح بعض التريقرات trigger المهمة مثل pre insert و post insert ..الخ

الــ triggers المهمة

1-Pre-Delete

اولا : وقت الانطلاق او مايسمى بداية عمله

قبل عملية الحذف

ثانيا: استخدامته

للتاكد من صلاحية المستخدم في تنفيذ عملية الحذف او حذف بيانات بلك تابع قبل حذف بيانات
البلك الريئسي او مثلا لحفظ البيانات المحذوفة الى جدول اخر قبل الحذف او مشابه ذلك

مثال على ذلك بالصورة

1345998859291.jpg


ثالثا: شرح الكود



التريقر التالي يعمل على حذف بيانات الموظفين من جدول الموظفين قبل حذف الادارة الخاصة بهم

فاذا كان لدينا موظفين في قسم المحاسبة مثلا حيث ان قسم المحاسبة يمثل الرقم 5 ويحتوي هذا القسم

على اكثر من موظف واردنا بذلك حذف قسم المحاسبة فانه سوف يمنع ذلك حينئذ يطلب منك حذف الموظفين

ومن ثم حذف قسم المحاسبة مثلا ...

2-On-Delete

اولا : بداية عمله

بدل من الحذف سيتم تنفيذ الاوامر المكتوبة في هذا التريقروستلغى
عملية الحذف الا في حالة تم كتابة كود الحذف في هذا التريقر

مثال عل ذلك بالصورة

1345998859452.png


ثانيا :شرح الكود



التريقريعمل على التأكد من ان الادارة المحذوفة ليست الادارة رقم 30


واذا كاتت الادارة ليست رقم 30 يتم تنفيذ كود الحذف حيث ان عملية الحذف سيتم الغائها


وسيتم بدل منها تنفيذ هذا الكود





3- Post-Delete



اولا: بداية عمله



بعد عملية الحذف



ثانيا: استخداماته



عرض رسالة نجاح عملية الحذف



مثال على ذلك




message('تمت عملية الحذف بنجاح');



4- Pre-Commit

اولا: بدايه عمله

قبل عملية الحفظ

ثانيا : استخداماته

التاكد من ان المستخدم له صلاحية الحفظ على هذا البلك او العملية

مثال عل ذلك بالصورة

1345998859723.png


ثالثا: شرح الكود

نلاحظ في الكود السابق انا الشخص المسمى scott هو المستخدم الذي له حق الصلاحية في عملية حفظ البيانات بعد معالجتها

واذا كان غير ذلك فانه لايتم السماح له بالحفظ وتتم عملية الغاء الحفظ

5-Pre-Insert

اولا:بداية عمله

قبل عملية الاضافة

ثانيا: استخداماته

التأكد من البيانات قبل عملية الاضافة او اجراء عمليات حسابية قبل الاضافة

مثال عل ذلك بالصورة

1345998859864.png

ثالثا: شرح الكود


التريقر التالي يعمل على زيادة المتسلسلة seq بمقدا واحد وذلك قبل عملية الاضافة

ملاحظة : يستخدم هذا الكود اذا اردت ان تدخل دائما رقم تسلسلي تلقائيا اي برمجيا

من دون ان تعمل له text في قائمة التصميم والتي تستخدم في ذلك هي الداله nextval

ويجب عليك ان تعمل للارقام التسلسلة جدول او مايسمى sequence

راجع درس الsequence في sql

اي كيف تعمل sequence

ارجو ان تكون المعلومه وصت بشكل صحيح


6-Post-Insert

اولا: بدايه عمله

بعد عملية الاضافة

ثانيا: استخداماته

اعطاء مثلا رساله ان عملية الادخال قد تمت بنجاح

مثال على ذلك

messege('تمت عملية الادخال بنجاح');



ارجو ان يكون الدرس مفهوم

اي استفسار انا جاااااااااااااااااااااااااهز

في الدرس التالي سوف نقوم بعلم التريقرات التي تتحقق من صحة البيانات

بتاريخ:

جزاك الله خيراً على هذه المعلومات القيمة
ننتظر دروسأً أخرى منك

بتاريخ:
  • كاتب الموضوع

منووووووووووووووووووور صفحتي اخووووووي
az123

لك خالص تحياتي

بتاريخ:

جزيت عنا خيرا اخى ولكن ارجو توضيح هذا الكود

raise form_trigger_failure


ولك الشكر كلة اخى فى الله

تم تعديل بواسطة ramy_orcl

بتاريخ:

تابع والى الامام جزاك الله خيرا

بتاريخ:
  • كاتب الموضوع

اسعدني مروركم اخواني

اما فيما يخص هذا الكود raise form_trigger_failure
كما لاحظت في المثاا السابق اذا كان المستخدم الذي ليس له حق الصلاحية في الحفظ او اي عملية فانه يتم تعطيل ا او فشل المستخدم باستخدام هذا الكود

raise form_trigger_failure


ودائما هذا الكود يستخدم في تعطيل العمل او فشل تنفيذ العملية
ايضا اخووي لو لاحظنا اخوووي في هذا الكود فانه يوجد ايضا كود مشابه ذلك

Raise application error trigger



والكود السابق الذي ذكر ماهو الفرق بينهم رغم ان اداء العملية نفسها وهي تعطيل تنفيذ الكود

الكود السابق دائما يستخدم في design الديلفوبر اي في التريقرات

اما الكود التالي فهو يستخدم في database او بالاحرى في pl/sql

واما وضيفة عملهما فهي واحد كما ذكرت الا فقط انهما يختلفان في اي مكان يستخدم

ارجووووا ان يكون قد وصلت الفكرة

ان شاء الله الدرس التالي قريبا

بتاريخ:

اسعدني مروركم اخواني

اما فيما يخص هذا الكود raise form_trigger_failure
كما لاحظت في المثاا السابق اذا كان المستخدم الذي ليس له حق الصلاحية في الحفظ او اي عملية فانه يتم تعطيل ا او فشل المستخدم باستخدام هذا الكود
raise form_trigger_failure


ودائما هذا الكود يستخدم في تعطيل العمل او فشل تنفيذ العملية
ايضا اخووي لو لاحظنا اخوووي في هذا الكود فانه يوجد ايضا كود مشابه ذلك

Raise application error trigger



والكود السابق الذي ذكر ماهو الفرق بينهم رغم ان اداء العملية نفسها وهي تعطيل تنفيذ الكود

الكود السابق دائما يستخدم في design الديلفوبر اي في التريقرات

اما الكود التالي فهو يستخدم في database او بالاحرى في pl/sql

واما وضيفة عملهما فهي واحد كما ذكرت الا فقط انهما يختلفان في اي مكان يستخدم

ارجووووا ان يكون قد وصلت الفكرة

ان شاء الله الدرس التالي قريبا


بجد حزالك الله كل خير اخى فى الله
بتاريخ:
  • كاتب الموضوع

<p style="text-align: center; "><span style="font-size:18px;"><span style="color: rgb(255, 0, 0); "><em><strong><span dir="RTL" style="">التحقق من صحة البيانات  </span>Validation trigger</strong></em></span></span></p>
<p style="text-align: center; "> </p>
<p><b>تستخدم للتحقق من صحة البيانات المدخلة </b></p>
<p> </p>
<h1 dir="RTL">
<span style="font-size:18px;"><strong>وحدة التاكد من صحة البيانات (</strong><strong><span dir="LTR" style="">Validation Unit</span></strong><strong>) وهي خاصية تابعة للموديل </strong></span></h1>
<h1 dir="RTL">
<span style="font-size:18px;"><strong>وهذه الخاصية تحدد متى يتم التحقق من صحة البيانات ولها اربعة اختيارات</strong></span></h1>
<p dir="RTL"><img alt="" src="http://im19.gulfup.com/2012-08-27/1346088828921.png" /></p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="color:#ff0000;"><strong>1-form</strong></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong><span dir="RTL">اي سيتم التحقق من صحة البيانات المدخلة والتاكد من سلامتها عند اغلاق النموذج </span></strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="color:#ff0000;"><span style="font-size: 14px; "><strong>2-Data Block</strong></span></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong>اي سيتم التحقق من صحة البيانات المدخلة والتاكد من سلامتها عند  الانتقال الى بلك اخر </strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="color:#ff0000;"><strong>3-Record</strong></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong><span dir="RTL">اي سيتم التحقق من صحة البيانات المدخلة والتاكد من سلامتها عند الانتقال الى  سجل اخر</span></strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="color:#ff0000;"><strong>4-Item</strong></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong>اي سيتم التحقق من صحة البيانات والتاكد من سلامتها عند  الخروج من البند  والانتقال الى بند اخر</strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><em><strong>ولديكم هذه الصورة توضخ التريقرات للتحقق من البيانات وفقا لكل validation unit</strong></em></p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"><img alt="" src="http://im24.gulfup.com/2012-08-27/1346089232445.png" /></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong> التريقر التالي يعمل على التحقق من أن تاريخ التعين يجب ان يكون اكبر من تاريخ النظام وهو تريقر يعمل على</strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong>مستوى البند اي أنه لن يسمح بالخروج من البند عندما يكون تاريخ التعين اكبر من تاريخ اليوم </strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><em><strong>لديكم المثال بالصورة التالية يوضح اكثر </strong></em></p>
<p dir="RTL"> </p>
<p dir="RTL"><img alt="" src="http://im19.gulfup.com/2012-08-27/1346088828232.png" /></p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"><em><span style="color:#b22222;"><strong>التريقر التالي يعمل على مسترى السجل ويعمل على التأكد من ان العمولة اقل من الراتب فاذا </strong></span></em></p>
<p dir="RTL"> </p>
<p dir="RTL"><em><span style="color:#b22222;"><strong>كانت اكبر يتم عرض رسالة ولايسمح بالانتقال سجل اخر الابعد تعديل العمولة بحيث تكون اقل من الراتب</strong></span></em></p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="font-size:18px;"><span style="color: rgb(0, 0, 0); "><strong>مثال على ذلك بالصورة</strong></span></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><img alt="" src="http://im19.gulfup.com/2012-08-27/1346088828873.png" /></p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="font-size:18px;"><span style="color: rgb(0, 0, 0); "><strong>وكذلك الصورة التالي عندما تكون في حالة الرن تايم </strong></span></span></p>
<p dir="RTL"><span style="font-size:18px;"><span style="color: rgb(0, 0, 0); "><strong>وكيفية ان البرنامج نفذ بشكل  صحيح وكذلك تحقق الشرط في ذلك</strong></span></span></p>
<p dir="RTL"><span style="font-size:18px;"><span style="color: rgb(0, 0, 0); "><strong>حيث ان العمولة يجب ان تكون اقل من الراتب</strong></span></span></p>
<p dir="RTL"><span style="font-size:18px;"><span style="color: rgb(0, 0, 0); "><strong>اما في حالة عدم ذلك فلن يتم تفيذ البرنامج </strong></span></span></p>
<p dir="RTL"><strong style="color: rgb(0, 0, 0); font-size: 18px; ">وسوف تظهر لك الرسالة تفيد ان الراتب اقل من العموله </strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><img alt="" src="http://im19.gulfup.com/2012-08-27/1346088828994.png" /></p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"> </p>
<p dir="RTL"><span style="color:#b22222;"><em><strong style="color: rgb(0, 0, 0); font-size: 18px; ">ارجوا ان تكون الفكرة قد وصلت بشكل صحيح</strong></em></span></p>
<p dir="RTL"> </p>
<p dir="RTL"><strong><u><em>ملاحظة:ا</em></u>ذا لم تكن الاكواد غير مفهومة لكم رجاء ردوا علي من اجل ان اشرحها بشكل افضل </strong></p>
<p dir="RTL"> </p>
<p dir="RTL"><font color="#000000" size="4"><b>انتظرونا في بقية الدروس القادمة باذن الله</b></font></p>
<p dir="RTL"> </p>
<p dir="RTL"><b style="color: rgb(0, 0, 0); font-size: large; ">لاتنسونا من دعائكم</b></p>
<p dir="RTL"> </p>
<p> </p>
<p dir="RTL"> </p>

بتاريخ:
  • كاتب الموضوع

انا اسف عن الشرح السابق حصل له بعض العطل للصور وظهرت ع شكل html

ساعيد الدرس السابق في وقت لاحق

ان شاء الله

  • بعد 2 شهور...
بتاريخ:

جزاك الله عنا كل خير ونتمنى من الله ان تتابع هذه الدروس التعليميه

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.