View Full Version : چگونه کدهای کارمندی پاک شده را مشخص کنیم؟
ali_abbasi22145
شنبه 06 آبان 1391, 14:08 عصر
سلام
من دستوری نوشته ام کدهای کارمندی هشت رقمی به شکل اتوماتیک تولید می کند.مثلا:
اداری با 211 شروع می شوند و به ترتیب 21100001و21100002و21100003و21100004و...
مالی با 213 شروع می شوند و به ترتیب 21300001و21300002و21300004و...
حسابداری با 214 شروع می شوند و به ترتیب 21400001و21400003و 21400004و...
اگر 21300003 یا 21400002 را حذف کنیم ترتیب بهم می خورد وچگونه کدهای کارمندی پاک شده را مشخص کنیم؟
تا بعدا به شکل دستی به افراد دیگر اختصاص دهیم
mhdsbt
دوشنبه 08 آبان 1391, 23:17 عصر
سلام
در کل میشه گفت که پاک کردن یا(Delete) از دیتا بیس زیاد خوش آیند نیست .معمولا برای اینکار یه فیلد دیگه در دیتا بیس به نام مثلا isActive
در نظر میگیریم و درصورتی که سطر مورد نظر را بخواییم پاکش کنیم این فیلدو ست میکنیم و بعد تو محاسبات دیگه با توجه به این فیلد میشه
گفت که این سطر پاک شده یانه.و برای اینکه مشکل کلید اصلی هم پیش نیاد نیاز نیس حتما این کد کارمندی رو کلید بگیری درسته که منحصر به فرده
ولی اجباری نیست که حتما کد کارمندی کلید باشه ،برای کلید یه Id میتونی بگیری از نوع AUtonumber .
امید وارم مفید باشه:چشمک:
ali_abbasi22145
دوشنبه 15 آبان 1391, 10:30 صبح
سلام
متشکر دوست من ولی من مجبورم پاک کنم و دوباره آن کد به یکی دیگر بدم و دستور دادن آن کد به یکی دیگر هم را نوشته ام.
ولی می خواهم کدهای پاک شده را پیدا و لیست بگیرم .
این هم راه حل تست شده من که دوستان دیگر هم استفاده کنند:
SELECT (del_rec)
FROM (SELECT document_code + 1 AS del_rec FROM CardTable EXCEPT SELECT document_code FROM CardTable)
AS boon WHERE del_rec < 300000000
baktash.n81@gmail.com
چهارشنبه 17 آبان 1391, 08:46 صبح
اگه کدی که استفاده می کنید به عنوان کد پرسنلی در جداول دیگه استفاده نشده می تونید پاکش کنید ... اما همونطور که دوستمون گفتن می تونید کاربر رو غیر فعال کنید و کلید اصلی جدول رو یه فیلد دیگه مثلا یه identity در نظر بگیرید و اگه خواستین کد پرسنلی کاربر رو به شخص دیگه ایی اختصاص بدید فقط کافیه کاربر رو غیر فعال کنید و کد پرسنلیش رو خالی کنید ... اینجوری می تونید از لیست کاربرانی که غیرفعال شدن و کد پرسنلیشون هنوز خالی نشده برای بدست آوردن کدهای حذف شده استفاده کنید
ali_abbasi22145
یک شنبه 21 آبان 1391, 14:41 عصر
سلام
کدی که استفاده می كنم به عنوان کد پرسنلی در جداول دیگه استفاده نشده و کلید اصلی جدول رو یه فیلد دیگه مثلا یه identity است اختصاص دادم.
اما كوئري من يك عيب دارد همانطور كه در شكل زير مي بينيد در برنامه اصلي كدهاي 102و202 پاك شده هستند اما كوئري علاوه بر آنها كدهاي 104و204 كه كدهاي انتهايي هستند را نمايش مي دهد كه اين 204و104 درست نيست.
كسي مي تواند كوري من را اصلاح كند به طوري كه كدهاي انتهايي را نشان ندهد؟
ali.bahrami
چهارشنبه 24 آبان 1391, 13:18 عصر
دوست عزیز همونطور که دوستان گفتند یک فیلد به نام isActive در نظر بگیرید و ابتدا کارمند را غیر فعال کنید... سپس برای اختصاص همون کد کارمندی به کارمند دیگه بیایید اونو update کنید و مجددا active نمایید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.