الأسيف بتاريخ: 9 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 9 مارس 2004 (معدل) لأن الـSequance غير آمن وممكن أن يتعرض للحذف ..إليكم هذا الـ Triger الذي أفادنا به أحد الخبراء ..والذي سياعدنا كثيراً في الترقيم التلقائي بطريقة مريحة وآمنة ..وطبعا يكتب قبل عملية الإضافة ..ومثالنا هنا على جدول الطلاب .. create triger student-s-no before insert on student declare x number; begin select max(s.no)+1 into x from stydent; :new.s-no:=nvl(x,1); end; آمل أن تجربوه .. تم تعديل 9 مارس 2004 بواسطة الأسيف اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 9 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 9 مارس 2004 هلا اخي الاسيف هذا التريجر لن يعمل لانه سوف يؤدي الي تايبول مايوتيتنج اي انك تقوم بعمل سلكت من جدول يتم الانسرت عليه وهذا الحل لتفادي السكونس لانه غالبا ما ينتج جاب في الارقام ولا بد من التعامل به مثلا عند اصدرا ايصالات مرقمه الحل لتلك المشكله هي عمل كود كنترول تايبول تايبول عادي جدا يتم تخزين اخر رقم سيريال موجود عليه و عند عمل سلكت عليه نكتب في نهايتها for update وهذا يعني عمل lock لريكورد الذي نقوم بقرائته ثم بعد السلكت نقوم بعمل ابديت للقيمه في الجدول الخارجي باضافة 1 هذه هي الطريقة الصحيحه للتعامل بعيدا عن السيكونس لانها تعني اما العملية كلها commit او العمليه كلها ROLLBACK شكرا لك اخي مع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Oramaster بتاريخ: 13 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 13 مارس 2004 مفيش مايمنع ان الكود يشتغل فى التريجر pre-insert الكود شغال تمام ومفيهوش مشكلة الفكرة التانية انى انشي جدول احط فيه اعلى قيمة واستعلم منه حل آخر بس الحل الأول مفيهوش مشكلة ممكن التوضيح ؟؟؟؟؟؟؟؟؟؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
هانى سند بتاريخ: 13 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 13 مارس 2004 التوضيح كما يقصده الاخ بلاك اند وايت ان سمح لي بان اوضح وجهة نظره ان هذا الكود المفروض ان يكتب علي داتابيز تريجر كما قال الاخ الاسيف و هذا واضح من شكل التريجر و هو ليس في الفورم و ان حدث ذلك فسينتج الايرورر الذي تفضل الاخ بلاك اند وايت بشرحه لانه لا يجوز ان نعمل استعلام من جدول يحدث فيه ابديت او انسرت و ملاحظتك صحيحة ora maseterاذ ان يكمن استعمال الكود علي الفورم بدون مشاكل تحت تريجر بري انسرت علي مستوي البلوك اما علي الداتابيز تريجر before insert فسينتج الايرور اتمني ان تصحح لي اخ بلاك اند وايت ان كنت مخطئ في فهمك و الله الموفق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 13 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 13 مارس 2004 مشكور اخي hanon_OCP علي التوضيحو فعلا كما ذكرت مع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الأسيف بتاريخ: 15 مارس 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 15 مارس 2004 يعني النتيجة النهائية لها النقاش الحلو .. أن الترتيجر صحيح على الفورم .....إذا هل نعتمده ........ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Guest عادل الشهري بتاريخ: 15 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 15 مارس 2004 يعطيكم الف عافيه أخوكم عادل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
هانى سند بتاريخ: 15 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 15 مارس 2004 والله تفاعل جميل اذا كان سيعتمد كما يقول الاخ الاسيف فيجب كتابته كالتالي begin Select nvl( max(empno ),0) +1 Into :empno From emp ; End ; و هذا علي تريجر pre-insert وعلي جدول emp اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
OIL_97 بتاريخ: 24 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2004 مشكور أخ TAREK وماقصرت على التوضيح ومعليش جل من لاينسى ... كنت أريد أسئلة الديفلوبر 6i و 9i ومعليش مرة ثانية ... وياليت تخدم أخوك oil بالسلف تست. والله يعطيك العافية مقدماً. :angry: اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
arab20002000 بتاريخ: 24 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 24 مارس 2004 يعطيكم الف عافيه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.