PDA

View Full Version : قفل نمودن رکوردهای یک شخص خاص



delphi_63102
پنج شنبه 09 تیر 1384, 16:56 عصر
با سلام
یه برنامه مربوط به کارکرد مشتریان است این برنامه باید در شبکه کار کنه میخوام وقتی کاربر 1 کد یک مشتری رو میزنه و اطلاعات اون مشتری براش در یک دیبیگرید ریز میشه این اطلاعات قفل بشه و کاربر 2 اگر همون کد مشتری رو وارد کرد پیغام دسترسی امکان ندارد رو دریافت کنه لطفا من رو راهنمایی کنید.

vcldeveloper
جمعه 10 تیر 1384, 03:09 صبح
آیا کاربر دوم فقط امکان ویرایش رو نداره، یا اینکه حتی امکان مشاهده رو هم نباید ندشته باشه؟

delphi_63102
جمعه 10 تیر 1384, 08:15 صبح
جناب مدیر بخش
با سلام
دو حالت داریم
1- کاربر دوم امکان مشاهده رو داشته باشه
2- کاربر دوم به هیچ عنوان اجازه دسترسی به کدمشتری که کاربر اول داره با اون کار میکنه رو نداشته باشه

vcldeveloper
شنبه 11 تیر 1384, 03:12 صبح
- کاربر دوم امکان مشاهده رو داشته باشه
برای این کار می تونید خاصیت LockType از Dataset ایی که به اون جدول مربوط میشه رو برابر با ltPessimistic قرار بدید، در این صورت اگر کاربر اول در حال ویرایش یک رکورد باشه، کاربران دیگه در صورتی که قصد ویرایش همون رکورد رو داشته باشند، با یک پیغام خطا مواجه میشند.

کاربر دوم به هیچ عنوان اجازه دسترسی به کدمشتری که کاربر اول داره با اون کار میکنه رو نداشته باشه
برای این کار راه حل آماده ایی به ذهنم نمیرسه - می تونی خودت یه راه حل ابتکاری پیدا کنی
مثلا فیلدی در رکوردها قرار بدی که هر زمان کاربری رکورد رو ویرایش میکنه، مقدارش تغییر کنه، برنامه در سمت کاربران دیگه می تونه قبل از نمایش رکوردها، مقدار این فیلد رو چک کنه و اجازه نمایش اون رو به کاربر نده.
یا میشه یک جدول موقت در سرور ایجاد کرد که برنامه لیست تمامی رکوردهای در حال ویرایش رو در این جدول ذخیره کنه، کاربران دیگه باید قبل از مشاهده یک رکورد چک کنند که اون رکورد در جدول فوق وجود نداشته باشه (البته در صورتی که تعداد تغییرات و تعداد کاربران زیاد باشه، این روش کار برنامه رو خیلی کند می کنه)
میشه راه های ابتکاری دیگه ایی هم استفاده کرد که الان به فکرم نمی رسه.

موفق باشید