الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ارجو ايضاح الخطأ فى هذة الفورمة LOG ON

Featured Replies

بتاريخ:

السلام عليكم
ارجو ايضاح الخطأ فى هذة الفورمةIF :U_N IS NULL THEN
MESSAGE('PLEASE ENTER YOUR USER NAME');
MESSAGE('PLEASE ENTER YOUR USER NAME');
END IF;
IF :U_P IS NULL THEN
MESSAGE('PLEASE ENTER YOUR PASS WORD');
MESSAGE('PLEASE ENTER YOUR PASS WORD');
END IF;
DECLARE
X VARCHAR2(233);
Y VARCHAR2(222);
BEGIN
LOOP
SELECT U_N,U_P INTO X,Y FROM USERS;
END LOOP;
IF (X=:U_N AND Y=:U_P) THEN
CALL_FORM('h:\HOSPITAL\MAIN1.FMX',HIDE,DO_REPLACE);
ELSE
MESSAGE('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG');
MESSAGE('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG');
END IF;
END;
حيث :U_N هو USER NAME ITEM و :U_P هو PASWORD ITEM

بتاريخ:

يجب تعريف المتغيرات (variables) اولا ثم كتابة الكود

بتاريخ:

اخي الكريم

قد يكون هذا هو الخطأ وقت التنفيذ

BEGIN
LOOP
SELECT U_N,U_P INTO X,Y FROM USERS;
END LOOP;
IF (X=:U_N AND Y=:U_P) THEN


جملة السيلكت ترجع اكثر من سطر واحد وهذا يسبب خطاء من نوع
Too_many_rows

هل من الممكن توضح لي ما هو هدفك من اللوب؟

بامكانك كتابة الكود بالشكل التالي



begin
select U_N,U_P INTO X,Y FROM USERS
where u_n=:u_n
and u_p= :u_p;
exception
when no_data_found then

MESSAGE('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG');
MESSAGE('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG')

raise_form_trigger_failure;
end;
/*
اذا كان اليوزر نيم والباس ورد صحيح سيصل التنفيذ الى هنا
*/
CALL_FORM('h:\HOSPITAL\MAIN1.FMX',HIDE,DO_REPLACE);





كذلك لاتنسى استخدام
raise_form_trigger_failure;

اذا لم يتم ادخال اليوزر نيم او الباسورد
حتى يتوقف تنفيذ باقي الكود

اتمنى اني فهمت المطلوب بشكل جيد

تحياتي لك

بتاريخ:

السلام عليكم..
اخي الكريم محمد سعيد،
لا أعتقد هناك داعي لإستخدام loop ..
إليك هذا الكود :

DECLARE 
V_COUNT NUMBER;
BEGIN
/*USE GLOBAL VARIABLE TO ENHANCE SECURITY OVER VARIOUS FORMS*/
:GLOBAL.NAME := :FORM_NAME.U_N;
:GLOBAL.PASS := :FORMNAME.U_P;

/* USE COUNT TO MAKE SURE THAT THERE IS ONLY ONE USER WITH THIS NAME AND PASSWORD*/

SELECT COUNT(*) INTO V_COUNT FROM USERS 
WHERE 
COLUMN_NAME = :GLOBAL.USER  AND
COLUMN_PASS = :GLOBAL.PASS;

IF
V_COUNT = 1 THEN
CALL FORM ('NEXT_FORM');
ELSE 
MESSAGE ('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG');
MESSAGE ('SORRY USER NAME OR PASSWORD YOU ENTERED WRONG');
END IF;
END;


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

تم تعديل بواسطة mab886

بتاريخ:
  • كاتب الموضوع

جزاكم الله خيرا جميعا لقد حلت المشكلة والحمد لله

بتاريخ:

كيف اتحلت .. ارجو ان تيعث الكود الذى انحلت به المشكله

و جزاك الله خيرا

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.