بتاريخ: 18 أغسطس 200619 سنة comment_76833 مرحبآ يامبرمجيناخوانى انا اعمل MANUAL واريد انا اعمل بحث وتم عمل ذلك بنجاح بأستخدام CURSOR ولكنى اريد انه عندما لا يجد ما ابحث عنه يعطى رساله تفيد ذلك علمآ بآنى استخدمة EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE('NOT FOUND '); ولكنها لا تعملما هو الحلايهاب وجدى تقديم بلاغ
بتاريخ: 18 أغسطس 200619 سنة comment_76837 اخي / ايهاب السلام عليكم ورحمة الله وبركاته :الامر انشاء الله بسيطداخل الكود IF ( A%FOUND ) THEN0000000000000000000000000000000000ELSE messageEND IF; تقديم بلاغ
بتاريخ: 19 أغسطس 200619 سنة كاتب الموضوع comment_76839 مشكورآ اخى على اهتمامك ولكنجربت مانصحتنى به ولكن تحدث اشياء غريبه يعنى يطلع الرساله بمجرد الضغط على الزر , لا يظهر قيمه للبجثوأليك الكود OPEN supp_NAME; if (supp_NAME%found) then LOOP FETCH supp_NAME INTO :lec_ID,:lec_NAME, :lec_date,:lec_time, :lec_speaker,:CONF_ID; END LOOP; else MESSAGE('AFSSADFSDFSDF'); MESSAGE('AFSSADFSDFSDF'); end if; CLOSE supp_NAME; مع الشكر ايهاب وجدى تقديم بلاغ
بتاريخ: 19 أغسطس 200619 سنة comment_76858 اخي / ايهابالسلام عليكم ورحمة الله وبركاتهجرب هذا declarecursor a is select EMPNO,ename,job,MGR,HIREDATE,sal,COMM,DEPTNO from emp where EMPNO = :tt;aa a%rowtype;BEGIN open a; fetch a INTO aa; if ( a%found ) thenloop :EMPNO := aa.EMPNO; :ename := aa.ename; :job := aa.job; :MGR := aa.MGR; :HIREDATE := aa.HIREDATE; :sal := aa.sal; :COMM := aa.COMM; :DEPTNO := aa.DEPTNO; fetch a INTO aa; exit when ( a%notfound ); end loop; else MESSAGE('AFSSADFSDFSDF'); MESSAGE('AFSSADFSDFSDF'); end if;close a; end; تقديم بلاغ
بتاريخ: 19 أغسطس 200619 سنة comment_76877 مرحبآ يامبرمجيناخوانى انا اعمل MANUAL واريد انا اعمل بحث وتم عمل ذلك بنجاح بأستخدام CURSOR ولكنى اريد انه عندما لا يجد ما ابحث عنه يعطى رساله تفيد ذلك علمآ بآنى استخدمة EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE('NOT FOUND '); ولكنها لا تعملما هو الحلايهاب وجدى 76833[/snapback] تقديم بلاغ
بتاريخ: 19 أغسطس 200619 سنة كاتب الموضوع comment_76888 مشكور اخى محمد و جارى التجربه !!ايهاب وجدى تقديم بلاغ
بتاريخ: 24 أغسطس 200619 سنة comment_77216 الأخ الكريم الحلول المطروحة كلها تعمل من المفترضوانوه للأتيEXCEPTIONWHEN NO_DATA_FOUND THENMESSAGE('NOT FOUND ');تستخدم في حالة تغذية حقل او حقول بواسطة جملة SELECT FI,F2 INTO :F1,F2 FROM TABLE NAME WHERE ....وتكون في نهاية الكود قبل الENDوذلك لكي لا يقف النموذج ويتابع العملأما الكيرسرفبعد فتحها نستخدم IF CURSOR_NAME%FOUND THEN............OR IF CURSOR_NAME%NOT_FOUND THEN................جرب وانا إضمن لك بمشيئة الله أنك ستحقق هدفكولك الكود لمساعدتكالمثال الاولFUNCTION GET_LAST_BILL(SUB NUMBER) RETURN NUMBER ISCURSOR R IS SELECT NET_TO_PAY FROM BILLS WHERE SUBSCRIBER = SUB AND FOR_MONTH =GET_PREV_MONTH(NVL(GETCURRENTMONTH,TO_CHAR(SYSDATE,'YYYYMM'))); R_V R%ROWTYPE; R_VAL NUMBER(14,2):=0.00;BEGIN OPEN R; FETCH R INTO R_V; IF R%NOTFOUND THEN MSG.................... CLOSE R; ELSE R_VAL:=R_V.NET_TO_PAY; CLOSE R; END IF; RETURN R_VAL;END;----------------------------المثال الثانيDECLARE CONT NUMBER(11):=0; RES DATE;C NUMBER;BEGINIF :PAID_METHOD = 10 THEN SELECT COUNT(*) INTO C FROM A_MONTHLY_COMMITMENT_DETAILS WHERE CONTRACT_SER = :SERIAL; IF C > 0 THEN SELECT MAX(VALUE_DATE) INTO RES FROM A_MONTHLY_COMMITMENT_DETAILS WHERE CONTRACT_SER = :SERIAL; ELSE SELECT ADD_MONTHS(:FIRST_PAID_DATE,:PAID_COUNT1 - 1) INTO RES FROM DUAL; END IF; ELSIF :PAID_METHOD = 20 THEN SELECT MAX(CHECK_DATE) INTO RES FROM A_MONTHLY_CHECKS_DETAILS WHERE CONTRACT_SER = :SERIAL;ELSIF :PAID_METHOD = 30 THEN SELECT MAX(DATE_) INTO RES FROM A_MONTHLY_CREDIT_VOUCHER WHERE CONTRACT_SER = :SERIAL;END IF;MSG(' ÊÇÑíÎ ÃÎÑ ÞÓØ '||' '||TO_CHAR(RES,'DD/MM/YYYY'));EXCEPTION WHEN NO_DATA_FOUND THEN NULL;END ; والسلام تم تعديل 24 أغسطس 200619 سنة بواسطة basemhm تقديم بلاغ
بتاريخ: 24 أغسطس 200619 سنة كاتب الموضوع comment_77265 مشكورين جميعآآآآآآآآآآآآآآآآآآآآآآآآآآايهاب وجدى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.