مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

موسوی

عضویت از 1393/01/15

دریافت آخرین مقدار درج شده برای یک فیلد در جدول وساخت رکورد بعدی براساس آن

  • شنبه 4 شهریور 1396
  • 11:08
تشکر میکنم

با درود  

ما یه جدول داریم که حاوی یک فیلد nvarcharهست  که هر دستور افزودن رکورد که به پایگاه داده میره ابتدا آخرین مقداررو از فیلد مورد نظر رو میگیره  بعد با یه پردازش در c# مقدار بعدی رو میسازه تا در جدول ذخیره بشه اما مشکل اینجاست  

فرض کنید در یک لحظه خاص همزمان سه درخواست به سمت سرور برای گرفتن آخرین مقدار از این فیلد میره هر سه درخواست یک مقدار رو دریافت میکنند و بعد از پردازش هر س درخواست همان مقدار رو میخان تو جدول ذخیره کنند یکی از این سه درخواست انجام خواهد شد ولی دو درخواست دیگر شکست خواهند خورد راهکار دوستان برای اینکار چیه اینو هم بگم نمیتونیم اول فقط اون فیلد خاص رو تو جدول هinsertکنیم چون جدول چندین فیلد با مقادیر الزامی غیر نال داره 

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

موسوی

عضویت از 1393/01/15

  • شنبه 4 شهریور 1396
  • 12:45

ببخشید فکر میکنم یه اصلاح کنم سوالمو اینه که در این جدول امکان درج رکوردهای دیگری هست که امکان داره مقدار فیلد مورد نظر براشون یکسان باشه و فقط در یک شرایط خاص وقتی که رکورد اولین بار ثبت میشه باید یک شماره ی مجزا بهش اختصاص بدیم مثلا اگه آخرین رکود جدول حاوی آی دی 520 باشه هیچ دلیلی وجود نداره که ما آخرین مقدار فیلد مون هم همون رکورد باشه ممکنه آخرین مقدار رکورد که درج شده و ما نیاز داریم تا از روی اون رکورد شماره جدید رو بسازیم رکورد شماره 428 باشه پس نمیتونیم به آخرین رکورد درج شده اعتماد کنیم ضمن اینکه ساخت کد جدید به یک واکشی اطلاعات ورفت و برگشت از sql به سرور تقاضا کننده نیاز هست که در همین وسط ممکنه رکورد جدیدی درج بشه  واینجاست که خطا اتفاق میفته فرض کنید فرمت رکورد به این صورته a1396/b271-135حال مقدار بعدی که در رکورد درج خواهد شد a1396/b271-136oخواهد شد نکته مهم اینه که آخرین رکورد جدول حتما حاوی آخرین مقدار مورد نیاز ما برای ساختن رکورد جدید نیست

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 4 شهریور 1396
  • 13:11

لینک هایی که قرار دادم را بررسی کنید مشکلتان حل می شود.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 4 شهریور 1396
  • 13:21

بهتره در سرور درخواست ها را در یک صف قرار دهید و تک تک پردازش کنید

میتونید از کالکشن queue استفاده کنید

کاربر سایت

موسوی

عضویت از 1393/01/15

  • یکشنبه 5 شهریور 1396
  • 08:55

ولی rowversion زمانی بدرد میخوره که من بخام به آخرین رکورد دسترسی داشته باشم ولی ممکنه اون رکوردی که من میخام حتما آخرین رکورد نباشه که اکثر اوقات اینطوریه 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)