بتاريخ: 1 أكتوبر 200421 سنة comment_13888 بسم الله الرحمن الرحيم السلام عليكم جميعا ورحمة الله وبركاته،، ..كلنا نعرف ان قيمة العمود رقم القسم في جدول الموظفين تتبع لقيم عمود رقم القسم في جدول الاقسام..وهنا جاء استخدام التريجر في حالة اضافة قيمة على جدول الموظفين غير معرفة في جدول الاقسام..فان التريجر في هذه الحالة يقوم باضافة رقم القسم على جدول الاقسام حتى تستكمل عملية التحديث او الادخال بالقيمة الجديدة على جدول الموظفين دون مشاكل...حتى الان تمام,والكتاب ذكر هذا المثال البسيط للدلالة على احدى فوائد التريجرات...المشكلة هنا ..او السؤال الذي اريده انه في الكتاب استخدم التوقيت afterوفعلا كان التنفيذ صحيحا...ولكنني حاولت تغيير التوقيت الى beforeفاعطاني نفس النتيجة !! وعمل التحديث دون ادنى مشكلة..طيب لماذا؟؟ وما هو الفرق في التنفيذ بين التوقيتين؟ ومتى نستخدم كل منهما؟؟في المثال السابق المنطق يقول ان وظيفة التريجر يجب ان تتم (قبل) عملية التحديث..ولكن الكتاب استخدم التوقيت(بعد)..ولم يحدث اي فرق يذكر في النتائج؟!!!في حين انني توقعت رسالة خطأ او اعتراض..لأن التريجر توقيته (بعد) الحدث ! يعني الحدث لما يتنفذ التريجر مش لازم يكون ادخل قيمة رقم القسم على جدول الاقسام بعد...ومما يتطلب بطبيعة الحال رسالة اعتراض عشان the reference constraintارجو من احد الاخوة التوضيح وجزاكم الله كل خيرالمصدر : Oracle university:pl/sql 9-33 تقديم بلاغ
بتاريخ: 3 أكتوبر 200421 سنة comment_14076 استخدام التريجر في حالة اضافة قيمة على جدول الموظفين غير معرفة في جدول الاقسام..فان التريجر في هذه الحالة يقوم باضافة رقم القسم على جدول الاقسام حتى تستكمل عملية التحديث او الادخال بالقيمة الجديدة على جدول الموظفين دون مشاكل... ياريت توضح اكثر عند اللي عليه خطوعشان نفهم الموضووع اكثر اخي الكريميعني هل انت تكتب رقم قسم جديد من ادخال للموظف الجديدفي جدول الموظفين ويكون رقم هذا القسم غير موجود في العمودرقم القسم الموجود في جدول الاقسام ...؟ ارجو التوضيح اكثر عشان يمكن اقدر اساعدك تقديم بلاغ
بتاريخ: 4 أكتوبر 200421 سنة كاتب الموضوع comment_14193 اجل تماما يا اخ الماس...وبالطبع الذي يسبب المشكلة هو وجود Reference Constraint-parent(deptno in dept) ,child(deptno in emp) .Aاي كما قلت انت..واشكرك لاهتمامك اخي تقديم بلاغ
بتاريخ: 7 أكتوبر 200421 سنة comment_14442 الأخ العزيز trust_words لقد حاولت في مثال مثله ووجدت نفس المشكلة التي واجهتك لذلك لم اجد الحل النهائي ، فارجو من الاخوة من لديه معرفة بذلك ان يبلغنا مشكوراً تقديم بلاغ
بتاريخ: 7 أكتوبر 200421 سنة كاتب الموضوع comment_14467 انا فعلا أقدر لك قولك هذا...فحقا "من قال لا ادري..فقد افتى"...وما اقل قائلها..ومااكثر الاخرين..ولو بدون علم..اجر نيّتك اخ الماس انشاء الله انه وصل..اشكرك مرة اخرى..واطلب ممن يدري من بقية الاخوة ان يجبنا..فقد صرنا اثنان وليس واحدا...! تقديم بلاغ
بتاريخ: 15 مايو 200520 سنة comment_36320 بسم الله الرحمن الرحيم السلام عليكم أخtrust_wordsفي الحقيقة كلامك مضبوط 100% وانا دورت على المثال في الكتاب من خلال رقم الصفحه والشابتر الي انت وضعتهم ولكن لم أجد المثال.عموما...لاحظ ياخي انه في أوراكل يجوز لك تدخل أي قيمة تبغاها في أي حقل تريدة حتى لو ما حققت الشروط و Constraintsبس بمجرد انك تعمل حفظ Commit عندها سيتم البدء في تدقيق الشروط و Constraintsلذلك في هذه الحالة هنا بعد ما أدخلنا رقم قسم غير موجود أصلا في جدول الموظفين أنطلق هذا التريجر مباشرة وقام بأضافة هذا الرقم الجديد في جدول الأقساملاحظ أننا لو قمنا بعمل حفظ الأن فسيقوم أوراكل بفحص هل رقم القسم في جدول الموظفين له وجود في جدول الأقسام, الأجابة بالطبع ستكون نعم لذلك فسوف تتم هذه العملية بنجاح.أعتقد أنك قد تتسائل الان:اذا ما هي الفائدة المرجوة من Timing(Before,After) ؟الجواب:في بعض الأحيان انت ترغب بالقيام بعمليات حسابية قبل أضافة سجل ما في جدول معين.مثلا في جدول الموظفين أنت ترغب بتعديل قيمة الراتب مثلا ليصبح ضعفي الراتب الحاليولكن تريد ان تفصح هل كادر ومرتبة هذا الموظف يسمحان بمثل هذا الراتب لهذه المرتبة والكادرلذلك تقوم بفحص مجموعه من الشروط قبل حفظ هذا التعديل فان نجحت الشروط تم التعديل و الا لم يتمهنا يكون الفرق شاسع جدا بين After و Beforeأتمنى أن أكون قد وفقت في شرحيAdNaNO.C.P تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.