بتاريخ: 7 ديسمبر 200520 سنة comment_53538 اخوتي فاللهانا عاملة sequenceعلي fieldمعينولكن لو لغيت رقم او حصل اي حاجة الsequenceبيتسحب منه بدون فايدة يعني لسه ما عملتش فاتورةوالرقم اصبح 200اذاي اخليه 1 2 3 ...................ومش عاوزة احصل علي maxفي databaseواضيف واحدلان هنا الخطورة لو عندي اتنين بيشتغلو علي الفاتورةوفتحو في نفس الوقت يحصل مشكلةاما اعتقد الsequenceلو حتي فتحو في نفس الوقت كل واحد ياخد رقممش عارفة ده صح والا بس يا ريت الاقي للمشكلة دي حل عاوزة امنع sequence burnشكرا تقديم بلاغ
بتاريخ: 7 ديسمبر 200520 سنة comment_53541 هذه مشكلة ال sequence مجرد ال select منه فإنه يعدي رقم بغض النظر هذا الرقم استخدمته بالفعل أم لاورأيي لحل هذه المشكلة البعد عن استخدام ال sequenceواستخدام ال maximum value +1 من الجدول نفسه وهذا يضمن عدم التكرارولكن حتى لايحدث conflict بين شخصين يستخدموا نفس الجدول نعمل exclusive lockالى أن نأخذ القيمة ثم نعمل commit حتى نفك ال lock ونترك الجدول للشخص الأخر ليأخذ الرقم التالي تقديم بلاغ
بتاريخ: 7 ديسمبر 200520 سنة كاتب الموضوع comment_53570 شكرا اخي الكريمبس والله ليا استفسار ماهو exclusive lockانا فاهمة المعني بس ازاي اعملهشكرا تقديم بلاغ
بتاريخ: 7 ديسمبر 200520 سنة comment_53576 LOCK TABLE table_namer IN EXCLUSIVE MODE;select max(emp_no+1) into block1.field1)commit;ال commit مهم جدا لأنك لو أخرتيه شويه سوف لا يجعل أي شخص يتمكن من عمل أي تعديل في الجدولوالlock يعني قفل الجدول بحيث لا يعدل فيه أحد إلا أنا في هذه اللحظة ثم بعد الcommit; ينفك هذا القفل ويمكن لأي شخص أن يتعامل مع الجدول تقديم بلاغ
بتاريخ: 7 ديسمبر 200520 سنة كاتب الموضوع comment_53600 شكرا اخي ابو عزتكتر الله من امثالك فالمنتدي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.