PDA

View Full Version : بحث هم زمانی داده ها در محیط شبکه



مهدی رحیم زاده
جمعه 14 فروردین 1388, 16:04 عصر
سلام چکار کنم که کاربرای شبکه تو کارشون تداخل پیش نیاد؟ یعنی مثلا وقتی یکی از کاربرا در حال ویرایش کردن اطلاعات یک رکورده ، بقیه کاربرا تا اتمام کار اون به اون رکورد دسترسی نداشته باشن ؟
اصلا خود SQL این کار رو انجام میده؟ اگه نه بهترین روش برای انجام این کار چیه ؟ یه چیزی شبیه حساب های بانکی؟
با تشکر

antisocial
جمعه 14 فروردین 1388, 17:33 عصر
دوست عزیز باید برای این کار توی پایگاهتون سطوح ایزولاسیون تعریف کنید به این ترتیب که برای اجرای مثلا اپدیت یک جدول ابتدا یک تراکنش تعریف کنید بعد از توی سی شارپ اونو فراخوانی کنید
فقط این نکته مهمه که شما اول باید قبل شروع تراکنشتون با این جمله اونو شروع کنید به عنوان مثال
set transaction isolation level serializable
begin transaction t1
....update دستور اپدیت
end
commit transaction t1
rollback transaction
end
یا
set transaction isolation level repeatable
یا . . .
ببینید این یه بحث خیلی طولانیه که من اونو نمیتونم تو یه تاپیک بنویسم تقریبا یه دفتره چهل برگ میشه
فکر میکنم به همین دلیل کسی پاسخ ارسال نکرده.
بعد ازین به بحث قفل ها باید توجه کنید که با اجرای این دستور در اس کیو ال از ان میتوانید مطلع شوید
exec sp_lock
اگر خیلی لازم دارید به این ای دی پی ام بزنید که من براتون اگر خواستید توضیحات بیشتری بدم
"antisocial_372"
کنید بعد از ال یه اندرلاین داریم (قبل عدد 372)
البته خود اس کیو ال از این لاک ها استفاده میکنه اما شما حتما باید از این تراکنش ها استفاده کنید