PDA

View Full Version : نهایی کردن اطلاعات یک تیبل



linux
جمعه 22 دی 1385, 13:53 عصر
من یک جایی احتیاج دارم که اطلاعات مربوط به یک یا چند جدول را نهایی کنم به این معنی که مثلا بعد از یک تاریخ (مثلا یک سال مالی) کسی حق ندارد هیچ گونه عملیاتی بر روی این جدول انجام دهد می خواستم ببینم دوستان چه روشی را پیشنهاد می کنند؟

whitehat
جمعه 22 دی 1385, 17:26 عصر
اولین روشی که به ذهم میرسه استفاده از تریگر هست. یعنی یک شرط در ابتدا گذاشته بشه و در صورتی که شرط نقض شود عمل Rollback انجام شود.
ولی اگه تعداد جداوی زیاد است بهتره کنترل ثبت و بروزرسانی و حذف را در یک SP خود هندل کنید و مانند بالا عمل کنید.

AminSobati
جمعه 22 دی 1385, 18:30 عصر
روشهای زیادی میشه استفاده کرد، ولی بستگی به شرایط شما داره. مثلا در سطح Application کنترل کنید یا در SP یا...

linux
جمعه 22 دی 1385, 19:53 عصر
روشهای زیادی میشه استفاده کرد، ولی بستگی به شرایط شما داره. مثلا در سطح Application کنترل کنید یا در SP یا...
اگر امکان داره در هر دو مورد یک توضیح بدهید ممنون می شم

AminSobati
جمعه 22 دی 1385, 21:23 عصر
از اونجائیکه سوالتون خیلی کلی هستش من دقیق تر از این چیزی نمیتونم بگم، مثلا:
در Application زمانی که کاربر اطلاعات سال قبلی رو داره مرور میکنه، کلید "ویرایش" غیر فعال باشه.
یا در دیتابیس، وقتی SP مربوط به ویرایش رو فراخوانی میکنید، اگر رکورد مورد نظر با تاریخ فعلی (که فرضا از GetDate بدست میارید) مغایر بود، Update انجام نشه.

linux
جمعه 22 دی 1385, 22:08 عصر
از اونجائیکه سوالتون خیلی کلی هستش من دقیق تر از این چیزی نمیتونم بگم، مثلا:
در Application زمانی که کاربر اطلاعات سال قبلی رو داره مرور میکنه، کلید "ویرایش" غیر فعال باشه.
یا در دیتابیس، وقتی SP مربوط به ویرایش رو فراخوانی میکنید، اگر رکورد مورد نظر با تاریخ فعلی (که فرضا از GetDate بدست میارید) مغایر بود، Update انجام نشه.
در مورد تاریخ ممکن هست کاربر با عوض کردن تاریخ سیستم بتواند این کار را انجام دهند
احتیاجی هست که یک فیلد اضافه کنیم به تیبیل و آن را نشانه گذاری کنیم؟

whitehat
شنبه 23 دی 1385, 00:00 صبح
در مورد تاریخ ممکن هست کاربر با عوض کردن تاریخ سیستم بتواند این کار را انجام دهند
اگر برنامه به صورت Client/server است و کسی به سرور دسترسی ندارد همین کار کفایت می کند.در غیر این صورت جدولی برای سالهای مالی در نظر بگیرید.