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

مساعده فاليديشن ومو فاليديشن

مغلق
بدأه Diligent في 28 فبراير 2003 · 5 رد · 980 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا واجهني طلب وهو الاتي:

كيف ممكن ان اتحقق من بيانات انها تكررت او لا قبل ان تخزن

يعني لو عندنا شاشه عباره عن dept الماستر و empno التفاصيل

في تفاصيل الموظفين عندنا اكثر من سجل لكل دائره.

في حاله اردنا كتابه بيانات اربع موظفين مثلا. ثم نقوم بحفظهم جميعا مره واحده

بعد كتابه بيانات الاول واردنا اظافه الثاني كيف يمكن ان نتاكد بان رقم الثاني

يختلف عن الاول ورقم الثالث يختلف عن الاول والثاني .. الخ

علما ان البيانات لم تخزن بعد.... وان الكود احتمال يكون على key-nextrec

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

وشكرااااااا ...

#2

صديقى العزيز لابد ان تعر انك تستخدم pk

فى تعاملاتك اذن انة يمنع التكرار

ولكن اذا استخدمت fk

فانة يسمح بالتكرار

#3

أعتقد انه يمكنك استخدام

table of record

و فيه تخزن الموظفين الاربع مثلا ... و هذا يتم قبل تخزينهم في قاعدة البيانات

و عند اضافة كل موظف تقارن الرقم مثلا مع البيانات الموجودة في هذا المتغير و كذلك مع البيانات الموجودة في قاعدة البيانات

فاذا وجد انه قد تم ادخاله يعطي رسالة خطأ

#4

شكرا ياا هشام على التواصل

اما لسؤالي ال PK هو الحل لكن اثناء الحفظ فقط.

لكن اللي احتاجو هنا هو كود يشتغل عند الانتقال من ريكورد الى اخر

ويخبرنا اذا تم تكرار الرقم قبل الحفظ يعني اثناء الانتقال الى الركورد الاخر

علما بان الـ Number Of Records Displayed بالنسبه لل block تساوي اربعه.

سوري على اللخبطه بس اتمنى اني الاقي الحل باسرع وقت ممكن..(clock)

#5

انا خطر ببالي نفس الفكره nore2000 بس ماقدرت ابني table of record

على بيانات الـ block وهي لم تخزن بعد ياريت تحاول تكتب الكود يمكن نتوصل لحل سوى شكراااااااا على التواصل

#6

اعتقد انك تريد اظهار رسالة من داخل اوراكل تخبرك بان الرقم قد دخل بالفعل

وفى هذة الحالة استخدم الوظيفة exists

مثال:

1-v1 boolean:=true;

2-v2 worker.name%type;

v2:=

3-select name,skill from worker ws

exists(select name,skill from worker

where wrker.ws=name)

if v2:=v1

then

show_alert(warnning)

else

show_alert(notexists

اكمل انت الباقى

لماذا استخدمت exists

لان الاجابة تكون اما نعم او لا

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

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

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

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

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

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

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