الانتقال إلى المحتوى
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.

مشكلة في تريجر Pre-update

Featured Replies

بتاريخ:

السلام عليكم
عندي فورمة لعمل تعديل على جدول معين(جدول العمليات) واللي من دوره عمل تطبيق هذا التعديل على جدولين اخرين في الداتابيز(جدول حركة الاسهم وجدول حركة النقدية)...
والاصل ان هذا الجدول(جدول العمليات) عند عمل ادخال سجل جديد فيه المفروض انه بيعمل insert في جدولين اخرين ف الداتابيز(جدول حركة الاسهم وجدول حركة النقدية)... وعامل تريجر pre-insert في هذا البلوك وكاتب فيه انه لما يتم ادخال سجل جديد في جدول العمليات يعمل ادخال في جدول حركة الاسهم وحركة النقدية بشروط معينة والحمدلله شغالة تمااااام وبتعمل ادخال بطريقة سليمة 100%
وانا عامل فورمة اخرى لعمل تعديل على جدول العمليات والتي من دورها ان تعمل تعديل في الجدولين الاخرين ولكن ...
انا عملت تريجر pre-update وكتبت فيه الكود اللي انا كنت كاتبه في تريجر pre-insert في الفورمة الاخري بتاعت الادخال
ولما اعمل تعديل واضغط حفظ بيحفظ وكل شئ تمام(بالنسبة لجدول العمليات) ولكن بالنسبة للتاثير في الجدولين الاخرين مش بيعمل تعديل بل بيعمل على ادخال قيد اخر في الجدولين الاخرين بمعنى ان :
مثلا لو كان عندي عملية معينة (سجل في جدول العمليات ) من دورها انها عملت ادخال لكمية 2000 سهم ونقصت النقدية بمقدار 8000 جنيه
وذهبت للجدولين الاخرين (جدول حركة الاسهم - جدول حركة النقدية ) فعلا اجد انه تم التاثير على هذين الجدولين من خلال هذه العملية ولكن ... عندما عملت تعديل مثلا غيرت الكمية وجعلتها بدلا من 2000 سهم جعلتها 2500 سهم "المفروض ان النقدية تنقص بمقدار 10000 جنيه وليس 8000 (على اساس ان سعر السهم 4 جنيه) "
اجد انه كمية الاسهم اصبحت 4500 سهم والنقدية 18000 جنيه
اتمنى ان تكون الصورة وضحت الان ..
فما هو التغيير المفروض انه اعمله لتجنب هذه المشكلة ولكم جزيل الشكر

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

بتاريخ:

ند عمل ادخال سجل جديد فيه المفروض انه بيعمل insert في جدولين اخرين ف الداتابيز(جدول حركة الاسهم وجدول حركة النقدية)... وعامل تريجر pre-insert في هذا البلوك وكاتب فيه انه لما يتم ادخال سجل جديد في جدول العمليات يعمل ادخال في جدول حركة الاسهم وحركة النقدية بشروط معينة والحمدلله شغالة تمااااام وبتعمل ادخال بطريقة سليمة 100%
وانا عامل فورمة اخرى لعمل تعديل على جدول العمليات والتي من دورها ان تعمل تعديل في الجدولين الاخرين ولكن ...
انا عملت تريجر pre-update وكتبت فيه الكود اللي انا كنت كاتبه في تريجر pre-insert في الفورمة الاخري بتاعت الادخال
ولما اعمل تعديل واضغط حفظ بيحفظ وكل شئ تمام(بالنسبة لجدول العمليات) ولكن بالنسبة للتاثير في الجدولين الاخرين مش بيعمل تعديل بل بيعمل على ادخال قيد اخر في الجدولين الاخرين بمعنى ان :

من كلامك انك ناقل الكود بظبط الكود الاول بيعمل insert وشغال التانى مفروض يعدل مش مفروض يعمل insert يبقى زاى انت نقال الكود لازم تعدل فى الكود وتغير العمليه من insert الى update

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

السلام عليكم
مشكور اخي مصطفى على الرد
بس انا فعلا قومت بتغيير كل جمل inserts الموجودة ف الكود المنقول وجعلتها كلها update وبرضه نفس المشكلة تحدث التريجر يقوم بالاضافة بدلا من التعديل فماذا افعل ؟؟

بتاريخ:

زي ما قالك أخونا مصطفي

ما ينفعش تحط كود معمول ل pre-insert اخل pre-update

pre-update معناه قبل التعديل فقط في سجل موجود اعمل شئ معين

بيعمل معالجعة يعني للبيانات اللي هي اصلا موجودة زي مثلا لو عشرة أسهم عاوز تعدل سعر السهم حسب ثمن الجنية اليوم
يبقي في pre-update حتعدل الثمن الحالي للاسهم بسعر السهم مضروب في عملية اليوم

تحياتنا لك

بتاريخ:

اخى تاكد من احكام جمله update يعنى من where مش ممكمن تكون ان كتاب جمله update و الاوركال يعملها insert
المشكله لو فى خطاء فى عمل التريجر لكان بدل التريجر بيشتغل من غير اخطاء و الخطاء فى البيانات يبقى اكيد العيب من الكود
بالتوفيق

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

السلام عليكم
هذا هو الكود ف المرفقات

pre-update.txt

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

ايه يا جماعة
الملف اتحمل 7 مرات ومفيش اي ردود
يا ترى ايه السبب ؟؟

بتاريخ:

ايه يا جماعة
الملف اتحمل 7 مرات ومفيش اي ردود
يا ترى ايه السبب ؟؟

اخى الكود مكتوب صح لكان االمشكله انى احنا مش عرفنا الجدوال و لاعرفين انت بتقارن ايه ولا انت الهدف من الكود ايه عشان تحاول تساعد نفسك شويه قسم الكود الى 4 قطع وجرب وتست كويس واحنا معاك ارفع قطع من الكود مع هدفك منه و احنا نحاول نجرب ونوصل لحل
ان شاء الله لكان الموضع صعب عليا انا عن نفسى او و بقى وضح كل الجدوال و هدفك من الكود و احنا نعمل كود جديد او نعدل
اتمنى لك الحل فى اقرب وقت واحنا قى خدمتك و نتمنى نخدمك
فى انتظار ردك

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

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

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

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

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

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.