الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكة محتاج لها حل سريع

مغلق
بدأه Oracle في 29 نوفمبر 2002 · 6 رد · 707 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخوتي الاعزاء ارحو ان استطيع ان اوصل لكم مشكلتي بالظبط

قمت باعداد برنامج و يقوم باستخدامه اكثر من مستخدم المشكلة التي توجهني الان هي انني اريد عمل trigger به رسالة يفيد في حالة اذا ما اراد اكثر من مستخدم الدخول بنفس رقم المستخدم

يعني

لو كان فيه المستخدم رقم ( 1 ) يستخدم البرنامج مثلا فاذا اراد اخر ان يدخل بنفس الرقم لا يستطيع الدخول و تخرج له رسالة تقول ان هذا المستخد م مشغول

في حين انني استخدم flag الفائدة منه اظهار رقم المستخدم الحالي على جدول الادخال

:o ارجو ان اكون قد استطعت في شرح مشكلتي

#2

السلام عليكم ورحمة الله وبركاته...........

يمكنك وضع حقل في جدول تعريف المستخدم بحيث هذا الحقل يأخذ قيمتن فقط هما (ON,OFF) وتقوم بعمل اختبار لاسم المستخدم حين الدخول مقارنة مع هذا الحقل أي بمعنى عند دخول المستخدم تقوم بعمل تعديل على الجدول ووضع الحقل (ON) وعند خروجه نضع الحقل (OFF) فإذا كان الحقل (ON) لا تستطيع الدخول بنفس المستخدم من مكان آخر.

وشكرا

#3

هل المستخدم هو اوراكل يوزر، ام ابلكيشن، فإذا كان المستخدم هو من الاوراكل نفسها، فيمكنك عمل دالة الآتية

select count(*), into cnt from system.v$session

where username = 'XXXXXXXX'

زبهذا، إذا كانت قيمة cnt اكبر من صفر، فإن المستخدم مشغول، وهكذا

#4

اخوتي شكرا لاستجابتكم السريعة و اود ان اشرح بتفصيل اكبر

انا عندي table اسمه users وده يتم فيه اضافة اسم المستخدم و رقمه و كلمة السر الخاصة به و يتم حفظ هذا كله في ال data base و يتم الدخول للبرنامج عن طريق form يقوم المستخدم فيه بكتابة اسمه ر قمه و كلمة السر الخاصة به

فاي الطرق هنا هي النافعة :confused:

#5

من الحلول البسيطة جدا ان تعمل إغلاق للسجل lock، فإذا دخل احد المستخدمين بسجل معين (بفرض ان لكل مستخدم سجل واحد، اي انه قيمة أحادية في الجدول) فإن الاوراكل لا تسمح لشخص آخر باستخدام السجل، وبذلك يكون المستخدم مغلق الى ان يقوم مستخدم السجل بالاغلاق

#6

Dear freind try this trigger

CREATE OR REPLACE TRIGGER secure_user
 AFTER LOGON ON SCHEMA 
BEGIN       

   IF (:OLD.USER  =:NEW.USER)    
THEN RAIS_APPLICATION_ERROR (-20202,'USER with the same number name already loged in!!! try again later salam!')

               END IF;

  END;


  END;

USERS is your table

:.user.OLD is the user who is already loged tot his table

is the user who trying to log to this table wuth same user namenew.user

if you try to log this table and there is already some one using this table it wil rais application error

Good luck!!!

IF you want more questions email me!

moawyahr@yahoo.com

salam!

Muawia

#7

السلام عليكم

اخوتي الاعزاء

مشكورين كلكم على جهدكم اللي بذلتوه معي و انا بكرة باذن الله هاجرب الطرق اللي شرحتوها و يا رب تنفع باذن الله

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

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…