ورود

View Full Version : عدم ویرایش رکورد بصورت همزمان



imanpadid
یک شنبه 21 آبان 1391, 17:43 عصر
با سلام خدمت اساتید محترم
می خواستم اگه ممکنه منو راهنمایی کنید.من پروژه ای دارم که با کد دلفی و بانک sql نوشتم.برنامه در یک شبکه اجرا میشه و درخواست هایی رو کاربران می گذارن و تایید می شه که بعد از تایید قابل تغییر نیست.مشکل من اینه که در زمانی که فرد درخواست رو ثبت کرده و تایید نشده اگه در حال ویرایش درخواست رو باز کنه و فرد تایید کننده تایید کنه درخواست قابل ویرایش هست.چطور قابلیت ویرایش یک رکورد در یک زمان رو کنترل کنم؟آیتمی که رکورد در حال ویرایش رو مشخص کنه.ممنون

Felony
یک شنبه 21 آبان 1391, 18:39 عصر
سوالتون به بخش SQL Server مربوط میشه نه مباحث عمومی دلفی ، در کل مشکلتون این هست که هر کاربر نسخه خاص خودش ار رکورد رو در سیستم خودش در اختیار داره و SQL همیشه آخرین تغییر رو در نظر میگیره ، بنابراین وقتی کاربر تایید کننده درخواست رو تایید کرد و کاربر x اون درخواست رو هنوز تو سیستمش باز داره و پستش میکنه اون تغییرات کاربر تایید کننده Override میشه و نادیده گرفته میشه چون نسخه محلی رکورد کاربر x جای رکوردی که کاربر تایید کننده ثبت کرده میشینه .

در مورد Lock ها در SQL Server تحقیق کنید .

منتقل شد .

vaezhasan
سه شنبه 07 آبان 1392, 23:53 عصر
با سلام خدمت اساتید محترم
می خواستم اگه ممکنه منو راهنمایی کنید.من پروژه ای دارم که با کد دلفی و بانک sql نوشتم.برنامه در یک شبکه اجرا میشه و درخواست هایی رو کاربران می گذارن و تایید می شه که بعد از تایید قابل تغییر نیست.مشکل من اینه که در زمانی که فرد درخواست رو ثبت کرده و تایید نشده اگه در حال ویرایش درخواست رو باز کنه و فرد تایید کننده تایید کنه درخواست قابل ویرایش هست.چطور قابلیت ویرایش یک رکورد در یک زمان رو کنترل کنم؟آیتمی که رکورد در حال ویرایش رو مشخص کنه.ممنون

به 3 طریق:
1- استفاده از ابزار SqlDependancy که می توند در اینترنت نمونه پروژه هاشو ببینید.
2- از طریق ایجاد یک فیلد تایم استمپ (مهر زمان) می توان همروندی را چک کرد.
3- ازطریق SqlTransaction که باز هم در اینترنت نمونه پروژه هاش هست.
البته راه های دیگری هم هست که دیگه خیلی خرفه ای هست ولی روشهای اصولیش سه روش بالاس که دومی از همه بهتر و پرکاربردتره. توضیح درباره هر کدام از سه روش بالا هم خیلی مفصل و جامع هست. موفق باشید.