الانتقال إلى المحتوى

اريد كود تريجر على فورم للتحقق من عدم تكرار الداتا


lost_angel

Recommended Posts

السلام عليكم .. وبعد

عملت فورم مواعيد يحتوي على رقم الموعد و تاريخ الموعد وبداية الموعد ونهاية الموعد ورقم الدكتور ورقم المريض

doctor_id(fk) ,patient_id(fk), app_id(pk) , app_date , start_time , end_time اسم الجدول app

اريد عمل كود يقوم بالاعتراض في حالة تكرر الموعد بنفس الموعد والتاريخ والدكتور(يعني في حالة تكرر بداية الموعد و نهاية الموعد وتاريخ الموعد و رقم الدكتور) كي لا يقوم بحجز نفس الموعد عند نفس الدكتور بنفس التوقيت


ولكم جزيل الشكر ..

رابط هذا التعليق
شارك

يسلمو كتير عالرد ... بس ما بنفع احطهم كلهم pk لانو في doctor_id(fk هاد من جدول تاني .... فكرة انو احطهم كلهم pk بتنفع في حالة وحدة انو ما في ولا عمود بعتمد عليه من جدول تاني .. ان شاء الله تكون وصلت الفكرة وشكرا الك مرة تانية :(

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته
الاخ العزيز lost_angel ممكن تضيف trigger pre-insert وبعد عمل جملة select المطلوبة ضع هذة الشروط فى where ولو فية اى مشكله ارسلها
وشكرا

رابط هذا التعليق
شارك

اشكرك عزيزي على الرد ... لكن التريجر الذي استخدمته هو when validate record

والكود هو :


declare 
	x number(10);
	begin
select count(*) into x from APPOINTMENT
where APPOINTMENT_DATE=APPOINTMENT.APPOINTMENT_DATE 
and 	DOCTOR_ID=APPOINTMENT.doctor_id 
and 	start_time=APPOINTMENT.start_time 
and   end_time=APPOINTMENT.end_time	;

if x>0 then
	message('eee');

raise form_trigger_failure;
end if;
end ;



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

رابط هذا التعليق
شارك

ان مش عارف هتنفع وله لأ بس جت الفكرة في دماغي قلت اكتبها


SQL> ALTER TABLE APPOINTMENT
2 ADD CONSTRAINT App_unique UNIQUE (
3 DOCTOR_ID,
4 APPOINTMENT_DATE,
5 start_time
6 );




تم تعديل بواسطة tera
رابط هذا التعليق
شارك

السلام عليكم

يوجد طريقة لمنع التكرار على الفورم و ذلك بان تقومى بتغير خاصية ال The Primary Key item property الى yes للحقول التى تريد ان لا يحدث فيها التكرار ثم تغير خاصية
Enforce Primary Key (Block) Property الى yes ... و دة هايمنع اى نكرار لجميع الحقول التى تم تحديدها

ارجو التجربة

شكرا و بالتوفيق

رابط هذا التعليق
شارك

عزيزي mada1212

اشكرك على التجاوب والاهتمام .. حاولت فيه وضيفت داتا بس مش عارف وين المشكلة انو ما بحفظ شي وضل كمان اني اطلع مسج وهاد اهم شي بالنسبة للفكرة .. رح اعمل message_level ان شاء الله بلكي زبط ...
يسلمو كتير مرة تانية

رابط هذا التعليق
شارك

عزيزي Amgad

اشكرك جزيل الشكر .. نزلت الفورم وحاولت افهم الكود لانو بعتمد على تايمر وان شاء الله رح اعدل عليه بناءا على items الي عندي .. سلمت يمينك .. وربنا يزيدك من العلم كمان وكمان

تحياتي

رابط هذا التعليق
شارك

االسلام عليكم

هذة شاشة تقوم بكشف التكرار فى الحقول كما شرحت من قبل ..........ارجو ان تحل المشكلة

شكرا و بالتوفيق


ملحوظة: الشاشة على سكيما SCOTT

DUBLICATE_DEPT.rar

رابط هذا التعليق
شارك

  • بعد 1 شهر...

السلام عليكم .. وبعد

عملت فورم مواعيد يحتوي على رقم الموعد و تاريخ الموعد وبداية الموعد ونهاية الموعد ورقم الدكتور ورقم المريض

doctor_id(fk) ,patient_id(fk), app_id(pk) , app_date , start_time , end_time اسم الجدول app

اريد عمل كود يقوم بالاعتراض في حالة تكرر الموعد بنفس الموعد والتاريخ والدكتور(يعني في حالة تكرر بداية الموعد و نهاية الموعد وتاريخ الموعد و رقم الدكتور) كي لا يقوم بحجز نفس الموعد عند نفس الدكتور بنفس التوقيت


ولكم جزيل الشكر ..

declare
x   number;
begin
select count(*) into x from tablename   where col1 like col2;
end ; 

رابط هذا التعليق
شارك

لما رايت الموضوع بصراحة لقد أعجبني التفاعل مع الاخ السائل بإيحاد الحلول له وكذا تفاعل السائل بالرد على التجربة فقلت في نفسي يجب أن أعلق على الموضوع بشكر الكل بارك الله فيكم جميعاً.
أخوكم ...

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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