PDA

View Full Version : دیتا بیس کلاینت- سرور



hamedj2001
پنج شنبه 17 دی 1383, 13:52 عصر
لطفا اگه کسی میتونه در این مورد به من کمک کنه
وقتی که یک دیتا بیس کلاینت-سرور دادید ممکن همزمان چندتا کاربر بخوان روی یک رکورد کار کنن مثلا بخوان اونو ویرایش کنن حذف کنن ویا رکورد جدیدی به دیتابیس اضافه کنن ایا در asp.net راهی برای کنترل این موضوع هست که وقتی یک کاربر روی یک رکورد داره کار میکنه کس دیگه ای به اون رکورد دسترسی نداشته باشه تا کار کاربر اول تموم بشه و کاربر دوم رکورد رو بعد از ویرایش توسط کاربر اول ببینه

متشکرم

Vahid_Nasiri
پنج شنبه 17 دی 1383, 14:18 عصر
ADO.NET به صورت پیش فرض به دلیل مدل معماری disconnected data از روش optimistic concurrency استفاده می کند. در این روش هنگامیکه رکوردی خوانده می شود (با قصد تغییر آن) آنرا قفل نمی کند.
روش pessimistic concurrency دقیقا مقابل روش قبل است. ( برای اجرای آن در ADO.NET باید BeginTransaction مربوط به شیء کانکشن را آغاز کرده و بعد آنرا به شیء SqlCommand خود ارائه داده و ... )

و کلا قفل کردن یک رکورد اصلا توصیه نمی شود زیرا scalability برنامه را به شدت محدود می کند. (زیرا قفل های طولانی مدت مشکل زا است و همچنین احتمال یک چنین تغییراتی (به صورت آنی و همزمان) به شدت کم است )

Behrouz_Rad
پنج شنبه 17 دی 1383, 14:44 عصر
قبول نیست آقای نصیری. همیشه شما اول میشی. :wink: :embr: