الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أزيد عدد القراءات للسجل بمجرد قراءته

مغلق
بدأه jooorj في 22 مارس 2007 · 13 رد · 1,362 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد عندما اقرأ سجل معين بجدول معين

ان اضيف 1 للحقل الللي بالجدول من نوع Int مثلا

يعني يعمل Sequence بمجرد قراء الصف ، طبعا لنفس الجدول

موقوف من المشاركة لقلة الأدب

============================

#2

لا يمكن عمل هذا رأيي على مستوى مخدم قاعدة البيانات, لانه ليس هناك trigger لالتقاط تعليمة select

اذا اردت عمل هذا قم بعمله على مستى التطبيق

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

اعتقد يستطيع عن طريق UDF

يستطيع عمل فنكشين معين تضيف واحد، أنا لم اجربها ولكن اعتقد SQL فيه امكانية اضافة فنكشين.

وشكرا

#4

pc.2058 هل تقصد ان يقوم بعمل function يعيد كل اعمدة الحقل مع اضافة السجلات او التعديل؟

هذا ممكن و لكن الاستعلام سوف يكون على function بدل من الجدول

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

هو لا يحتاج ان يغير بالجدول انما عد الاعمدة اعتقد ممكن مثل ماذكرت.

كذلك هناك طريقة اخرى.

ان يصنع جدول موقت temp ويعمل حقن الاعمدة مع وجود اوتوفلد ويعمل view على اساس هذا الجدول.

#6

ياجماعة مثال للتبسيط:

اان عندي جدول للSerial يعني كالتالي:

Serial1 - Serial2 - اوهكذ

----------------------------------------------------------
SN1						||			  SN2			  
---------------------------------------------------------- 
AN0023				  ||			12005					// ملاحظة صف واحد لكل //
----------------------------------------------------------

المطلوب ان المستخدم يزيد عليه واحد بمجرد قراءة الرقم السابق

هناك حل طبعا هو ان يتم قراة السجل ومن ثم اضافة واحد عليه بعمليتين اولا SELECT وبعدها UPDATE --

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

هناك للعلم بالاوراكل شئ اسمه Sequence بمجرد القراءة يزيد تلقائيا

باختصار احتاج طريقة مأمونة لزيادة السيريال والتي تزيد القيمة بدون زيادة الصفوف

موقوف من المشاركة لقلة الأدب

============================

#7

اي سيريل تريد ان تزيد؟ SN1 او SN2

اشرح يا اخي بطريقة نستطيع ان نفيدك!

اذاSN1 انت تحتاج تستعمل trigger مثل ما قالك الاخ فوق.

اما اذا SN1 فانت لاتحتاج شيء!! اجعلة رقم اوتو وخلاص. identity وidentity seed

ليه التعذيب هذا؟ يا اخي ارفع sn1 الحروف AN واجعلة رقم اتو افضل واسرع. وفي الابلكيشن ضيف اي شيء علية مثل 123ZXT

او........

تستعمل طريقة اكثر تقدم......

لنفرض انه نظام فوترة وتريد ان يكون الرقم متسلسل ولا يجوز فقدان اي رقم. وعندك عدد من المستخدمين ممكن يصدرون فاتوره في نفس الوقت. في هذه الحالة. لا تجعل المستخدم يفتح الجدول مباشرة! اي اجعلة يشتغل على جدول موقت . وعند الانتهاء من الفاتورة يقوم بالضغط على Update او submit ....ثم يقوم روتين عندك داخل الابلكيشن بفتح الجدول على السيرفر و( يحقن) - حلوه هذه يحقن- المعلومات في الجدول ويطلع لك رقم جديد(رقم الفاتورة) تعرضة لمستخدم . وتاخذ البطاطس وتحطها مع الطماطم...اوبس اسف تخربطت علي المعلومات. نكمل وين كنا؟؟؟ ايوة ...وبهذه الحالة انت انتهيت من مشكلتك.

#8

اريد SN1 يزيد واحد مثلا عند كل قراءة منه ويتخزن فيه

موقوف من المشاركة لقلة الأدب

============================

#9

شو الفائدة إنك تعد عدد القراءات لسجل معين في قاعدة البيانات

أعطني سببا وجيها ؟؟؟

#10
اقتباس
شو الفائدة إنك تعد عدد القراءات لسجل معين في قاعدة البيانات

ياDesign

take it easy

الست تلاحظ في هذا المنتدى وجود عمود اسمه "عددالقراءات" لكل موضوع؟

الأخ يريد شيئا كهذا!!

لا أظن وجود trigger على مستوى select، ولكن يمكن عمل stored procedure يقوم بعمل ماهو مذكور

اقتباس
هناك حل طبعا هو ان يتم قراة السجل ومن ثم اضافة واحد عليه بعمليتين اولا SELECT وبعدها UPDATE --

وبالنسبة للمشكلة، يمكن حلها بوضع الجملتين داخل transaction.

أرجو توضيح ما تريد إن لم تكن الحلول المطروحة الحل الذي تريده.

فكر بطريقة أخرى

#11

أكيد ، بس هذا بيصير ليما المستخدم ينقر على الإرتباط و يطلب موضوع معين Topic

فيتم منادات اجراء على سبيل المثال GetTope ( TopicId )

في هذا الإجراء تتم عملية الزيادة و يرجع الإجراء الموضوع المطلوب

هيك بتوقع

و لكن لا يتم زيادة المواضيع المقروءة عند كل تعليمة Select

أنا أعتبر هذا الموضوع خطأ فادح في التصميم لإنه هيك بيهلك RDBMS

سلام

#12

اين التشجيعات

موقوف من المشاركة لقلة الأدب

============================

#13

عفوا في واحد من المشرفين ربط مشاركاتي ببعضها ظننا منه انها نفس الموضوع :)

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

بل لم يكتف بذلك فقام بإرسال إنذار لي بإني أكرر الرجاء من المشرفين إزالة الانذار لانه غير منطقى.... وشكرا!!

موقوف من المشاركة لقلة الأدب

============================

#14

قمت بإعادتهما كما طلبت، والرجاء عدم تكرار الأسئلة

فكر بطريقة أخرى

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…