بتاريخ: 10 سبتمبر 201213 سنة comment_227266 السلام عليكم ...لقد قمت بإستخدام كود (PROCEDURE) موجود في المنتدى وهو خاص بشاشة ال LOGINمن هناhttp://www.araboug.org/ib/index.php?showtopic=29597وقمت بالتطوير عليه حيث كان ينقصه أهم نقطه في شاشة الدخول إلا وهي مقارنة الباسوورد واليوزر والتحقق منها من DATABASE !! غريباليكم الكود حيث فيه خطأ بسيط ناتج عن ال IF حيث ينقص END IF أخرى لا أعلم أين أضعها أرجو مساعدتكم فيه ...المكتوب باللون الأحمر هو ما قمت بإضافته------------------------------------------------------------------------------------ PROCEDURE P_CHECKUSER IS VN_COUNT NUMBER(10) := 0 ; VV_USRSTS NUMBER(1) := '' ; VV_USRTYPE NUMBER(1) := '' ; VV_USERID USERS_ACCOUNTS.USER_ID%TYPE; VV_PASSWORD USERS_ACCOUNTS.USER_PASSWORD%TYPE; BEGIN BEGIN SELECT COUNT(1) INTO VN_COUNT FROM USERS_ACCOUNTS; EXCEPTION WHEN NO_DATA_FOUND THEN VN_COUNT := 0; END; IF VN_COUNT = 0 THEN :PARAMETER.P_TRIALS := NVL(:PARAMETER.P_TRIALS,0) + 1 ; IF :PARAMETER.P_TRIALS = 3 THEN EXIT_FORM(NO_COMMIT,NO_VALIDATE); ELSE GO_BLOCK('blklogin'); CLEAR_BLOCK(NO_COMMIT); GO_BLOCK('blklogin'); END IF; ELSE BEGIN SELECT USER_STATUS , USER_TYPE , USER_ID , USER_PASSWORD INTO VV_USRSTS , VV_USRTYPE , VV_USERID , VV_PASSWORD FROM USERS_ACCOUNTS WHERE UPPER(USER_ID) = UPPER(:BLKLOGIN.USERID) AND UPPER(USER_PASSWORD) = UPPER(:BLKLOGIN.PASSWORD); IF UPPER(USER_ID) = UPPER(:BLKLOGIN.USERID) AND UPPER(USER_PASSWORD) = UPPER(:BLKLOGIN.PASSWORD)THEN :GLOBAL.P_USER_ID := :BLKLOGIN.USERID; new_FORM('SEARCH_V21'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; IF VV_USRSTS <> '0' THEN MESSAGE('user not active'); MESSAGE('user not active'); EXIT_FORM(NO_VALIDATE); END IF; END; ---------------------------------------------------------------------------------------------------------------------------------------------- تم تعديل 10 سبتمبر 201213 سنة بواسطة ali_tayeh تقديم بلاغ
بتاريخ: 10 سبتمبر 201213 سنة comment_227273 السلام عليكماخي الفاضل الكود موجود بالفعلIF UPPER(USER_ID) = UPPER(:BLKLOGIN.USERID) AND UPPER(USER_PASSWORD) = UPPER(:BLKLOGIN.PASSWORD)THENلكن تقريبا نسي الأخ ووضع اسم الحقل بدل اسم المتغير !!!!!وأسماء المتغيرات كالتاليVV_USERID , VV_PASSWORDمن وجهة نظري يا أخي هتمشي في التشييك على الباسورد واسم الدخول كالتالي1 - استخدام Cursor أفضل بدلالة كلمة السر واسم الدخول وفي جملة الاستعلام هتجيب الأي دي بتاع المستخدم كمان لو في بيانات ظهرت بالتشييك طبعا باستخادم الCursor يبقى كلمة السر واسم المستخدم صحيحين ولو لم يتم إستخراج بيانات يبقى هم خطأCursor GetUserData ISSelect UserID, UserNameFrom UsersTableWhere UserPass = :UserPassAnd UserName = :UserNameOpen GetUserDataFetch GetUserData Into UserId,UserNameClose GetUserData ;وتعمل جميع التشيكات بتاعتك وان شاء الله تكون طرقة مختصره وتفيدك-------------------------------Ahmed SalehSenior Oracle Developer At KSA[email protected] تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.