AHLAM ABDULLH SADAGH بتاريخ: 23 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 23 مارس 2007 اود معرفة اليه إصطياد او مسك الاستثناءات الناتجه من تنفيذ عبارتي ال UPDATE , ال DELETE عند عدم وجود بيانات في الجدول اي (WHEN NO DATA FOUND ) و الية معالجتها في تطبيقات الاوراكل ديفلوبر ال FORM BUILDER ..احلام صدقه.مبرمجة كمبيوتر.صنعاء/اليمن..تم تعديل العنوان إدارة المنتدي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
fattah286 بتاريخ: 24 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2007 لمعالجة الأستثناء عند عدم وجود بيانات في الجدول WHEN NO DATA FOUND تكتبين بعد أمرال select أو الupdate أو الdelete الأتي:exception when no_data_found then null;م/عبدالفتاح الشهاباليمن-صنعاء اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
هانى سند بتاريخ: 24 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2007 السلام عليكم و رحمة الله و بركاته الأخت الكريمة عند عمل update or delete اذا لم يتم تحديث او حذف صفوف مطابقة للشرط و اعتقد ان هذا هو ما تسألين عنه فلن ينتج عن ذلك استثناء او exception فقط سينتج عن ذلك ان عدد 0 صف من الصفوف قد تم تعديله او حذفه مثال update emp set sal=sal+100 where empno=9999; فرقم هذا الموظف 9999 غير موجود و برغم ذلك فسيتم تنفيذ الجملة بنجاح و لكن لن يتم تحديث اي صفوف و لمعرفة اذا كان قد تم التعديل او الحذف بنجاح يمكنك استخدام البارمتر sql%rowcount و هو في حالة التعديل و الحذف و حتي الادخال سيحمل عدد الصفوف التي تم تحديثها او حذفها فاذا لم يكن هناك بيانات تم تحيديثها او حذفها فسيكون ب 0و يمكن استعماله كالتالي if sql%rowcount=0 then ......................... end if; و هذا يعتبر القسم الخاص بمعالجة الاستثناء اذا لم يكن هناك بيانات في حالة التعديل او الحذفمع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AHLAM ABDULLH SADAGH بتاريخ: 24 مارس 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 24 مارس 2007 شكراً جزيلاً للاخوين شهاب و هاني على الاهتمام بالموضوع و الرد عليه. و اود ان اقول لك يا اخ شهاب انه عند تنفيذ تعليمة ال UPDATE و عدم تحقق شرط التعديل اي عدم و جود البيانات المطلوب تعديلها و كتابة تعليمة معالجة الاستثناء التاليه :WHEN NO DATA FOUND فإنه لايدخل الى هذه التعليمه اصلاً لمعالجة الاستثناء اي ان هذه التعليمه فاشله في الامساك بالاستثناء اولاً حتى نتمكن من معالجته ثانياً و قد جربت ذلك مسبقاً و هذا ما دفعني لوضع السؤال في المنتدى!!!!!اخ هاني اشكرك على الرد و اود إخبارك بإني حالياً استخدم التعليمه التاليه :IF SQL%NOT FOUND لمعرفة عدم وجود السجل المطلوب تعديله و التي تؤدي الغرض المطلوب و لكني كنت ابحث عن تعليمه خاصه بمعالجة الاستثناءات لاني لا زلت اعتقد ان طريقتي و طريقتك تخص التعامل مع ال CURSOR و ليس معالجة الاستثناءات فهل يوجد لديك حل اخر...مع جزيل الشكرو تحياتي إاليكماحلام صدقه.مبرمجة كمبيوتر.صنعاء /اليمن.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
هانى سند بتاريخ: 24 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2007 السلام عليكم أخت أحلام ٍSQL%NOT FOUND لا تستخدم في حالات الابديت و الديليت بل في السيليكت و المناسب لاستخدام مع الابديت و الديليت هو ما قلت عليه سابقا SQL%ROWCOUNTو أساسا اي جملة سيليكت و ابديت او ديليت يقوم الاوراكل بفتح cursor لها و هو ما يسمي بالimplicit cursor اي لا يوجد تعارض بين استخدام sql%rowcount مع جمل الابديت او الديليت لانها هي في الاساس عبارة عن cursorكما ان طريقة الاستخدام في الكيرسور تحتلف حيث يجب استخدام اسم الcursor الذي قمنا بتعريفه في قسم ال declare و ليس استخدام كلمة sql%...و اكرر مرة اخري انه تنفيذ جملة ابديت او ديليت مع وجود شرط لا يرجع بيانات لن يكون هناك استثناء او اكسبشن انما يمكن التحقق فقط عن طريق sql%rowcountو ملحوظة هذه الطريقة مجربة كثيرا من قبل بفاعلية مع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.