إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

كيف يمكن عكل commit في database trigger


3 رد (ردود) على هذا الموضوع

#1 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 22 May 2005 - 10:04 AM

السلام عليكم .....انا احاول يا اخوان ان اعمل database triggerبعد عملية الinsert بحيث يقوم هذا ال trigger بعمل truncate لكل السجلات الموجودة في جدول معين ,ولكن عند تشغيله تظهر رسالة خظأ تقول انه لا يمكن عمل commit في الtrigger فحاولت ان اعمل delete table_name; و اقوم بعها بعمل commit ولكن تظهر نفس الرسالة .
فهل من مساعدة؟؟؟؟؟؟؟؟؟

#2 عبدالله ندا

عبدالله ندا

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,017 مشاركة
  • الاسم الأول:عبدالله
  • اسم العائلة:ندا
  • البـلـد: Country Flag
  • المنصب الحالي:Technical Applications Manager

تاريخ المشاركة 22 May 2005 - 10:18 AM

هلا اخي اوامر التعامل مع البيانات في الداتا بيز تريجر العادي لا تحتاج الي commit ويتم عملها بطريقه اليه
هناك نوع وحيد من الداتا بيز تريجر الذي يقبلها وهوا atounomous trigger
وهوا يقوم بنشاء transaction فرعيه و عمل commit عليها
مع تمنياتي بالتوفيق

في زمننا هذا .........................
ليس هناك قلب ناصع البياض ...
ولا قلب قاتم السواد ...
ولكن دائما
BLACK&WHITE

 

مع تحياتي
عبدالله ندا

http://anada.4shared.com

abdallahnada@hotmail.com 


#3 tarek200_jo

tarek200_jo

    مشترك

  • الأعضــاء
  • 50 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 22 May 2005 - 10:25 AM

شكرا على الرد السريع .....ولكن انا اريد بعد عملية الحذف ان لا يتم عمل rollback لاستعادة البيانات مرة اخرى.لهذا كنت أسال عن الحذف و الcommit مباشرة كما هو الحال في الامر truncate

#4 عبدالله ندا

عبدالله ندا

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,017 مشاركة
  • الاسم الأول:عبدالله
  • اسم العائلة:ندا
  • البـلـد: Country Flag
  • المنصب الحالي:Technical Applications Manager

تاريخ المشاركة 23 May 2005 - 01:21 AM

اي تعامل مع الداتا من خلال الداتا بيز تريجر يكون محكوم بنجاح العمليه الاصليه
فمثلا لو لديك تريجر قبل التعديل يقوم بمسح قيم في جدول اخر بمجرد انتهاء التعديل في الجدول الاول يتم في نفس الوقت مسح الجدول الثاني و يكون امكانية الاسترجاع او التاكيد محكومه هل قمت بعمل commit بعد بيانات الجدول الاول ام لا
اذا كنت تريد ان يتم مسح بيانات الجدول الثاني بغض النظر عن ماذا تم في الجدول الاول اي اذا قمت بتعديل بيانات الاول و تم مسح الثاني و لكن اذا حدث rollback للاول يظل الثاني ممسوحا اي يتم فصل كل عمليه في transaction منفصله اكتب في بداية التريجر في قسم ال declare
pragma autonomous transaction
طبعا الحروف مش فاكر كده صح و لا لا ...هوا ده الحل الوحيد الي يسمحلك انك تعمل commit في داتا بيز تريجر

مع تمنياتي بالتوفيق

في زمننا هذا .........................
ليس هناك قلب ناصع البياض ...
ولا قلب قاتم السواد ...
ولكن دائما
BLACK&WHITE

 

مع تحياتي
عبدالله ندا

http://anada.4shared.com

abdallahnada@hotmail.com