اريد عندما اقرأ سجل معين بجدول معين
ان اضيف 1 للحقل الللي بالجدول من نوع Int مثلا
يعني يعمل Sequence بمجرد قراء الصف ، طبعا لنفس الجدول
اريد عندما اقرأ سجل معين بجدول معين
ان اضيف 1 للحقل الللي بالجدول من نوع Int مثلا
يعني يعمل Sequence بمجرد قراء الصف ، طبعا لنفس الجدول
موقوف من المشاركة لقلة الأدب
============================
لا يمكن عمل هذا رأيي على مستوى مخدم قاعدة البيانات, لانه ليس هناك trigger لالتقاط تعليمة select
اذا اردت عمل هذا قم بعمله على مستى التطبيق
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
اعتقد يستطيع عن طريق UDF
يستطيع عمل فنكشين معين تضيف واحد، أنا لم اجربها ولكن اعتقد SQL فيه امكانية اضافة فنكشين.
وشكرا
pc.2058 هل تقصد ان يقوم بعمل function يعيد كل اعمدة الحقل مع اضافة السجلات او التعديل؟
هذا ممكن و لكن الاستعلام سوف يكون على function بدل من الجدول
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
هو لا يحتاج ان يغير بالجدول انما عد الاعمدة اعتقد ممكن مثل ماذكرت.
كذلك هناك طريقة اخرى.
ان يصنع جدول موقت temp ويعمل حقن الاعمدة مع وجود اوتوفلد ويعمل view على اساس هذا الجدول.
ياجماعة مثال للتبسيط:
اان عندي جدول للSerial يعني كالتالي:
Serial1 - Serial2 - اوهكذ
---------------------------------------------------------- SN1 || SN2 ---------------------------------------------------------- AN0023 || 12005 // ملاحظة صف واحد لكل // ----------------------------------------------------------
المطلوب ان المستخدم يزيد عليه واحد بمجرد قراءة الرقم السابق
هناك حل طبعا هو ان يتم قراة السجل ومن ثم اضافة واحد عليه بعمليتين اولا SELECT وبعدها UPDATE --
العملية هذه فيها خطورة لانه قد يشترك مستخدمين في القراء وبالتالي لن يتم عمل مسلسل ترقيم حقيقي لانه صدف القراءة في نفس اللحظة او قبل التعديل للزيادة من السمتخدم الاول فسيحدث حينها ان المستخدم الاول والثاني يحصلان على نفس المسلسل مما يولد تكرار السيريال.
هناك للعلم بالاوراكل شئ اسمه Sequence بمجرد القراءة يزيد تلقائيا
باختصار احتاج طريقة مأمونة لزيادة السيريال والتي تزيد القيمة بدون زيادة الصفوف
موقوف من المشاركة لقلة الأدب
============================
اي سيريل تريد ان تزيد؟ SN1 او SN2
اشرح يا اخي بطريقة نستطيع ان نفيدك!
اذاSN1 انت تحتاج تستعمل trigger مثل ما قالك الاخ فوق.
اما اذا SN1 فانت لاتحتاج شيء!! اجعلة رقم اوتو وخلاص. identity وidentity seed
ليه التعذيب هذا؟ يا اخي ارفع sn1 الحروف AN واجعلة رقم اتو افضل واسرع. وفي الابلكيشن ضيف اي شيء علية مثل 123ZXT
او........
تستعمل طريقة اكثر تقدم......
لنفرض انه نظام فوترة وتريد ان يكون الرقم متسلسل ولا يجوز فقدان اي رقم. وعندك عدد من المستخدمين ممكن يصدرون فاتوره في نفس الوقت. في هذه الحالة. لا تجعل المستخدم يفتح الجدول مباشرة! اي اجعلة يشتغل على جدول موقت . وعند الانتهاء من الفاتورة يقوم بالضغط على Update او submit ....ثم يقوم روتين عندك داخل الابلكيشن بفتح الجدول على السيرفر و( يحقن) - حلوه هذه يحقن- المعلومات في الجدول ويطلع لك رقم جديد(رقم الفاتورة) تعرضة لمستخدم . وتاخذ البطاطس وتحطها مع الطماطم...اوبس اسف تخربطت علي المعلومات. نكمل وين كنا؟؟؟ ايوة ...وبهذه الحالة انت انتهيت من مشكلتك.
اريد SN1 يزيد واحد مثلا عند كل قراءة منه ويتخزن فيه
موقوف من المشاركة لقلة الأدب
============================
اقتباسشو الفائدة إنك تعد عدد القراءات لسجل معين في قاعدة البيانات
ياDesign
take it easy
الست تلاحظ في هذا المنتدى وجود عمود اسمه "عددالقراءات" لكل موضوع؟
الأخ يريد شيئا كهذا!!
لا أظن وجود trigger على مستوى select، ولكن يمكن عمل stored procedure يقوم بعمل ماهو مذكور
اقتباسهناك حل طبعا هو ان يتم قراة السجل ومن ثم اضافة واحد عليه بعمليتين اولا SELECT وبعدها UPDATE --
وبالنسبة للمشكلة، يمكن حلها بوضع الجملتين داخل transaction.
أرجو توضيح ما تريد إن لم تكن الحلول المطروحة الحل الذي تريده.
فكر بطريقة أخرى
أكيد ، بس هذا بيصير ليما المستخدم ينقر على الإرتباط و يطلب موضوع معين Topic
فيتم منادات اجراء على سبيل المثال GetTope ( TopicId )
في هذا الإجراء تتم عملية الزيادة و يرجع الإجراء الموضوع المطلوب
هيك بتوقع
و لكن لا يتم زيادة المواضيع المقروءة عند كل تعليمة Select
أنا أعتبر هذا الموضوع خطأ فادح في التصميم لإنه هيك بيهلك RDBMS
سلام
عفوا في واحد من المشرفين ربط مشاركاتي ببعضها ظننا منه انها نفس الموضوع :)
للأسف الشديد هذا خطأ الرجاء من الجميع و المختصين تحديدا مراعاة الدقة في النقل والربط بين المشاركات.ففي موضوع الترقيم التلقائي للسجلات يختلف عن الSequence وأظن ان احد المشرفين فهم اني اكرر بسبب سوء فهمه للمواضيع او للتسرع منه.
بل لم يكتف بذلك فقام بإرسال إنذار لي بإني أكرر الرجاء من المشرفين إزالة الانذار لانه غير منطقى.... وشكرا!!
موقوف من المشاركة لقلة الأدب
============================
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…