الانتقال إلى المحتوى
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.

مشكلة في الترقيم التلقائي والجداول الفرعية

Featured Replies

بتاريخ:

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

تحية طيبة الى جميع اعضاء المنتدى والعاملين عليه بالخصوص
اتمنى لكم اسعد الاوقات
اخواني في بداية تصميمي لقاعدة المعلومات واجهت ثلاثة مشاكل اريد لها حل وعلى ما اعتقد انها سهلة جدا جدا
ولكن وكما تعلمون اني جديدة على تصميم قواعد المعلومات ففكرت واغلب ما تعلمته هو من هذا المنتدى الجميل باعضاء الاطياب

انا لدي قاعدة معلومات متكون من 20 جدول الاول info متكون من الاسم واسم الام والرقم التسلسلي pk
وكل الجداول الباقية fk وتتكون من معلومات اخرى
المشاكل التي واجهتها في برنامجي هذا

1- انا عندما افتح جديد يطلب دائما مني ان ادخل له الرقم التسلسلي رغم المفروض ان يرقم هو تلقائي فارجو ان اتعلم كيف اجعله يرقم تلقائي وارى الرقم امامي علما اني لدي مايقارب 4 حاسبات تعمل على هذه القاعدة

2- عندمل اقوم بادخال رقم تسلسلي مثلا رقم 1 ياخذه ولا يعترض وعندما انتقل الى الجدول ال fk يرقم هو هناك ويعطي له رقم 1 ولكن المشكلة عندما انقر على فتح قيد جديد بالجدول الرئيسي pk يفتح المفروض رقم 2 اقوم بادخال رقم 2 له يقبله ولكن عندما انظر الى الجدول fk ارى انه عند نقري على جديد في pk يبقى محتفظ بالقيمة السابقة وهي مثلا رقم 1 او اذا كنت في رقم 10 ونقرت جديد يبقى رقم عشرة وهكذا


3- عندما اريد ان ابحث مثلا على اسم محمد ناصر طبعا الذي ادخلته مسبقا فاني اجده ولكن المشكلة هي عند نقري بالماوس على اي خليه فبامكاني ان احررها وواخذفها وادخل كلمات جديدة بدل القديمة رغم المفروض الذي اريده هو عند فتحي لاي قيد سابق تم ادخاله ان لا يقبل التحرير الا اذا نقرت على ايقونه اسمها تحرير وفعلا انا لا اعرف كيف اجعل واجه برنامجي كيف لا تقبل الادخال واذا نقرت على ايقونة تحرير يعطيني السماحية للكتابة

بتاريخ:

الاخت الكريمة

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

ورحم الله امرئ عرف قدر نفسه
ومن تواضع لله رفعه

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

بالنسبة للسؤال الاول


1- انا عندما افتح جديد يطلب دائما مني ان ادخل له الرقم التسلسلي رغم المفروض ان يرقم هو تلقائي فارجو ان اتعلم كيف اجعله يرقم تلقائي وارى الرقم امامي علما اني لدي مايقارب 4 حاسبات تعمل على هذه القاعدة

يمكنك التغلب على هذه المشكلة بوضع تريجر على مستوى البلوك
اسمه pre-insert

declare 
temp number;
begin select (max(nvl(field_your_number,0))) +1 into temp from table_name; :yor_text:=temp;
end;


هذا بالنسبة للحل وهو موجود بالمنتدى ولو بحثتي لوجدتيه موجود على الرابط
http://www.araboug.org/ib/index.php?sho...c=8922&hl=ترقيم

طبعا تضعي في خصائص الحقل الذي تريدين وضع الترقيم فيه enabled=NO

بالنسبة للسؤال الثاني

2- عندمل اقوم بادخال رقم تسلسلي مثلا رقم 1 ياخذه ولا يعترض وعندما انتقل الى الجدول ال fk يرقم هو هناك ويعطي له رقم 1 ولكن المشكلة عندما انقر على فتح قيد جديد بالجدول الرئيسي pk يفتح المفروض رقم 2 اقوم بادخال رقم 2 له يقبله ولكن عندما انظر الى الجدول fk ارى انه عند نقري على جديد في pk يبقى محتفظ بالقيمة السابقة وهي مثلا رقم 1 او اذا كنت في رقم 10 ونقرت جديد يبقى رقم عشرة وهكذا

بتطبيق حل المشكلة الاولى لاتظهر مشاكل واظن سببها انه هناك نسخ للبيان او استخدام ما يسمى copy from item وللمعلومية اذا كنتي تريدين تخزين البيانات من الجدول الاساسي في الجدول الفرعي او ما يسمى master & detail فلا داعي لاظهار الرقم الاساسي في الجدول الفرعي او كما تطلقين عليه ب fk

السؤال الثالث
3- عندما اريد ان ابحث مثلا على اسم محمد ناصر طبعا الذي ادخلته مسبقا فاني اجده ولكن المشكلة هي عند نقري بالماوس على اي خليه فبامكاني ان احررها وواخذفها وادخل كلمات جديدة بدل القديمة رغم المفروض الذي اريده هو عند فتحي لاي قيد سابق تم ادخاله ان لا يقبل التحرير الا اذا نقرت على ايقونه اسمها تحرير وفعلا انا لا اعرف كيف اجعل واجه برنامجي كيف لا تقبل الادخال واذا نقرت على ايقونة تحرير يعطيني السماحية للكتابة

هذه المشكلة يمكن حلها بادخول الى خصائص ال الحقل وتغيير خاصية update allowed الى no
فبهذه الطريقة تستطين السيطرة عليها
وكذلك توجد طريقة برمجية اخرى وهي
عند تشغيل الفورم تحويل خاصية التعديل للحقل الى false
كالتالي
set_item_property('item_name',UPDATE_ALLOWED  ,property_false);



وللتحرير يمكنك كتابة الامر

set_item_property('item_name',UPDATE_ALLOWED  ,property_true);




رحم الله امرئ عرف قدر نفسه

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

بتاريخ:

أظن أن التعليمات التالية للترقيم ستعطيها مشكلة unique لأن لديها أكثر من مستخدم يعملون في نفس الوقت
declare
temp number;
begin select (max(nvl(field_your_number,0))) +1 into temp from table_name; :yor_text:=temp;
end;

لذلك لابد من استعمال sequance حيث يمكن إنشاء sequance اسمه مثلا xx_seq ثم وكما ذكر admin05 يمكن وضع في per-insert trigger مايلي:
declare
temp number;
begin select xx_seq.nextval into temp from table_name;
:yor_text:=temp;
end;
أما إذا أرادت أن ترى الرقم أمامها كما ذكرت فلابد من أن تضع للحقل الذي تريده initial value كما يلي:
sequance.xx_seq.nextval

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

بتاريخ:

الاخ chayah
اقتراح جميل مع انه تصدف واحد بالالف قد يحدث ذلك وانا مطبقه عندي على 10 يوزر بدون اي مشاكل ويعملون بنفس الوقت وما تقوله صحيح ولكن يوجد به بعض البطئ

بتاريخ:

الأخ admin شكراً لمشاركاتك القيمة التي أقرأها دائماً وأرجوا التعرف عليك في وقت قريب.
أما بالنسبة لإقتراحي فهو لحماية إدخالات المستخدم وإن كانت النسبة 1 بالمائة ألف فيجب أن نعطي المستخدم برنامجاً free of buges
واقتراحي بداية ونهاية هو لإعطاء الأخوة في المنتدى تصور لكيفية التفكير في التطبيقات الكبيرة التي يكون فيها عدد كبير من المستخدمين وتكون المعلومات حساسة جداً وضياع سجل يعني ضياع مال ووقت.

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

تحية طيبة لك اخي العزيز على الرد والذي سوف احاول ان اجربه واشكرك عليه كثيرا والجميل انت ارسلتني الى الرابط في الاعلى للعلم ان الذي سألك سابقا ايضا المسكين قد قام المشرفون بحذف موضوعة للاسف
ولكن جزاهم الله خيرا انهم قد غفلوا عن موضوعي هذه
ولم افهم كلمتك والقصد منها

رحم الله امرئ عرف قدر نفسه

ارجو التوضيح لاني قد تالمت منها
علما
عمليه الحذف من دون ابلاغ او اعلام او انذار هذه قمع للرأي وللاسف متى نتحرر من القمع

بتاريخ:

اختي الكريمة
لم اقصد بها شيء وكان هدفي هو الافادة ولم تكوني انتي المقصودة

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

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

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

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

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

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.