بتاريخ: 19 يوليو 200718 سنة comment_105236 السلام عليكم ورحمة الله وبركاته .. كيفكم اخواني ..لدي مشكله صغيره في برنامج انتهيت منه تقريبا .. لكن باقي عليه بعض التحسينات .. أنا عندي modulel في فورم وفيه 3 بلووكات ..كل بلوك يمثل جدول موجود لدي في قاعده البيانات ..طبعا كل جدول فيه primary key .. وهذي هي صوره العلاقه بينهما .اريد ان اضع الحقل farmer_no في جدول farmer ترقيم تسلسلي وايضا الحقل farm_no في جدول farm بحيث عند الاضافه يكون هناك ترقيم تسلسلي من دون تدخل المستخدم ..وايضا عند الحذف يكون التسلسل لم يتأثر .. ساعدوني بارك الله فيكم .. علما بأني جربت طريقة اخوي احمد درويش لكنها لم تنجح معي لا ادري ما السبب .. ؟ هل لان الحقل مفتاح رئيسي ام لا ؟ شكرا لكم ..ملاحظه اعمل على اصدار oracle 8i و dev 6 تقديم بلاغ
بتاريخ: 19 يوليو 200718 سنة comment_105243 انا عندى فكره فى موضوعك وهو انك تعمل function تقوم بإعادة أكبر قيمه للـ primary key إلى انت مستخدمه وتستخدمه هذه function كا قيمه للprimary key أثناء إضافة سجل جديد بعد إضافة واحد كالاتىfunction get_farm_no return number isfarmid numberbeginselect max(farm_no) +1 into farmidfrom farmreturn farmendوإستدعاء هذه الداله عند إضافة جديدأما بالنسبه للحذف فيمكنك الإحتفاظ بقيم farm_no للسجل المحذوف قبل حذفه وعمل update للجدول farm كالأتىupdate farm set farm_no=farm_no-1where farm_no>farm_idبحيث أن farm_id هو قيمة التfarm_no للجل المحذوفياريت تجرب الطريقة دية وتعرفنى إذا كانت نفعت ولا لأ تقديم بلاغ
بتاريخ: 19 يوليو 200718 سنة comment_105260 الاخ الكريميمكن عمل علي كل بلوك في pre-inserttrigger select max(nvl(primar_key,0)+1 into your_field_name from ur_table وان شاء الله هتلاقي الموضوع سهلسلام تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.