PDA

View Full Version : تغییر مقدار فیلد auto increment داخل برنامه



r_mehrizi
چهارشنبه 08 خرداد 1387, 14:44 عصر
من یک برنامه با vb نوشتم که هر وقت یک کالایی ایجاد می کنم خود کامپیوتر به اون شماره اموال میده به فرض من 20 تا کالا دارم که از 1 تا 20 شماره گذاری شده وقتی من کالای آخری را حذف میکنم و دوباره یک کالای جدید را اضافه می کنم به جای اینکه شماره 20 به اون بده شماره 21 میده و این هم به خاطر اینه که فیلد شماره من داخل sql server به صورت یکی یکی اضافه میشه
من میخوا داخل برنامه کاری کنم که وقتی یک کالا حذف میشه شماره اموال اون را به کالای بعدی که اضافه میشه بده

ASKaffash
چهارشنبه 08 خرداد 1387, 16:43 عصر
با سلام
شما این نوع فیلد را حذف کنید وبه جای آن از یک نوع مثل SmallInt استفاده کنید و در زمان ایجاد کالای جدید آخرین شماره را پیدا کنید وبه اضافه یک کنید وبعنوان کد جدید در ایجاد استفاده کنید فقط حتما فیلد را کلید تعریف کنید(بعدا خیلی به نفع شما واهد بود)

linux
پنج شنبه 09 خرداد 1387, 16:33 عصر
با سلام
شما این نوع فیلد را حذف کنید وبه جای آن از یک نوع مثل SmallInt استفاده کنید و در زمان ایجاد کالای جدید آخرین شماره را پیدا کنید وبه اضافه یک کنید وبعنوان کد جدید در ایجاد استفاده کنید فقط حتما فیلد را کلید تعریف کنید(بعدا خیلی به نفع شما واهد بود)

دوست عزیز هدف از استفاده از فیلدهای identity این نیست که از آن برای شماره اموال و ... استفاده کنیم، فقط برای این هست که مطمئن باشیم که رکورد ما با یک شماره منحصر بفردی شناخته خواهد شد.
برای این کار بهتر است که فیلد identity سر جای خودش بماند، یک فیلد دیگر از نوع nvarchar اضافه کنید این شماره اموال را در آن بنویسید حالا اگر این شماره اموال از الگوی خاصی پیروی می کند آن الگو را پیاده سازی کنیم.