PDA

View Full Version : همزمانی کار برروی یک رکورد از جدول



IMANAZADI
یک شنبه 31 خرداد 1394, 09:12 صبح
با سلام و عرض ادب
دارم یک برنامه می نویسم که دیتابیسش sql هست
این برنامه سرور کلاینت هست یعنی همزمان چندین کاربر روی اون کار میکنند
حالا یک سوال پیش میاد اگر دو کاربر همزمان یک رکورد رو انتخاب کنند و بخواهند بر اساس اون رکورد update یا insert انجام بدن چی پیش میاد

توضیح : فرض کنید ما در جدولمون یک فیلد داریم به نام 'shomare'
که زمانیکه در برنامه کاربر یک رکورد از این جدول رو فیلتر میکنه در پشت برنامه مقدار فیلد 'shomare' در متغییر ذخیره میشه و پس از زدن کلید save برنامه یکی به اون شماره اضافه میشه و در رکورد بعدی که Insert میشه ذخیره میشه

حالا اگر همزمان دو کاربر بیاد و یک رکورد رو فیلتر کنه مقدار فیلد 'shomare' در متغییر دو کاربر یک عدد است و پس از زدن کلید save دو عدد تکراری در دو رکورد ثبت میشه

ممنون میشم

pezhvakco
یک شنبه 31 خرداد 1394, 17:35 عصر
همزمانی کار برروی یک رکورد از جدول
باید درباره Isolation Level مطالبی رو بخونید
ولی

توضیح : فرض کنید ما در جدولمون یک فیلد داریم به نام 'shomare'
که زمانیکه در برنامه کاربر یک رکورد از این جدول رو فیلتر میکنه در پشت برنامه مقدار فیلد 'shomare' در متغییر ذخیره میشه و پس از زدن کلید save برنامه یکی به اون شماره اضافه میشه و در رکورد بعدی که Insert میشه ذخیره میشه
حالا اگر همزمان دو کاربر بیاد و یک رکورد رو فیلتر کنه مقدار فیلد 'shomare' در متغییر دو کاربر یک عدد است و پس از زدن کلید save دو عدد تکراری در دو رکورد ثبت میشه
اگه درست دونسته باشم روش کار شما رو =>
روش کار شما نادرست است=
1)برای کار با پایگاه داده بهتره (=باید) دستورات در سمت خود SQL انجام بشه (=مانند بکار گیری SP)
2)ستونی که به عنوان شناسه است رو باید خود پایگاه داده مقدار دهی نمایید (=Identity , Auto Inc)
و ...