بتاريخ: 1 يونيو 200718 سنة comment_101142 السلام عليكمعندي مشكلة بسيطة عملت تريجر للبحث وهو يعمل بشكل صحيحولكن جزء الEXCEPTION لا يعمل فلا يظهر ال ALERTاي انني اريد ان اظهر ALERT عندما لا توجد هناك نتائج للبحثهذا هو الكود DECLARE ALERT_CHOICE NUMBER; M_DATE varchar(50):=:FIND_MEETING_DATE; M_ROOM varchar(50):=:ROOM_ID; CURSOR GETMEETING IS SELECT MEETING_ID,ROOM_ROOM_ID,MEETING_DATE,MEETING_START_TIME,MEETING_FINISH_TIME FROM DNRD_MEETINGS WHERE MEETING_DATE like '%'||M_DATE||'%' AND ROOM_ROOM_ID like '%'||M_ROOM||'%'; BEGIN GO_BLOCK('DNRD_MEETINGS'); CLEAR_BLOCK; IF (:SEARCH.FIND_MEETING_DATE IS NULL OR :SEARCH.ROOM_ID IS NULL) THEN SET_ALERT_PROPERTY('ERROR_ALERT',ALERT_MESSAGE_TEXT,'fields can not be empty!!!'); SET_ALERT_PROPERTY('ERROR_ALERT',TITLE,'ERROR'); ALERT_CHOICE := SHOW_ALERT('ERROR_ALERT'); GO_ITEM('FIND_MEETING_DATE'); ELSE OPEN GETMEETING; LOOP FETCH GETMEETING INTO :MEETING_ID,:ROOM_ROOM_ID,:MEETING_DATE,:MEETING_START_TIME,:MEETING_FINISH_TIME; GO_BLOCK('DNRD_MEETINGS'); NEXT_RECORD; EXIT WHEN GETMEETING%NOTFOUND; END LOOP; END IF; CLOSE GETMEETING; :SEARCH.FIND_MEETING_DATE := NULL; :SEARCH.ROOM_ID := NULL; GO_ITEM('FIND_MEETING_DATE'); EXCEPTION WHEN NO_DATA_FOUND THEN SET_ALERT_PROPERTY('ERROR_ALERT',ALERT_MESSAGE_TEXT,'fields can not be empty!!!'); SET_ALERT_PROPERTY('ERROR_ALERT',TITLE,'ERROR'); ALERT_CHOICE := SHOW_ALERT('ERROR_ALERT'); :SEARCH.FIND_MEETING_DATE := NULL; :SEARCH.ROOM_ID := NULL; GO_ITEM('FIND_MEETING_DATE'); END; بانتظار ردودكمLUNE تقديم بلاغ
بتاريخ: 4 يونيو 200718 سنة comment_101359 dear lune the exception fires when u issue a select statment and returnes no record but cursor need another handlethis is an examplDECLARECURSOR C1 ISSELECT ’anything’ FROM S_ORDWHERE customer_id = :S_CUSTOMER.id;BEGINOPEN C1;FETCH C1 INTO :GLOBAL.dummy;IF C1%FOUND THENCLOSE C1;MESSAGE(’There are orders for this customer!’);RAISE form_trigger_failure;ELSECLOSE C1;END IF;END تقديم بلاغ
بتاريخ: 4 يونيو 200718 سنة كاتب الموضوع comment_101470 EssamshabeebThanks for helpI solve it by doing this fetch getmeeting ...; if getmeeting%rowcount = 0 then put_the_alert_here; end if; exit when getmeeting%notfound; Anyway it is good to know diffrent way of coding I will try yours as wellThanks againlune تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.