نقل قول: تابع ایجاد شماره افزایشی
دوست عزيز نمي دونم تابعت چي هست .. ولي معمولا اگر روش به اين صورت باشه که بزرگترين عدد رو بدست مياره و بعلاوه يکش ميکنه ، معمولي ترين اشتباهي که باعث ميشه مشکل شما ايجاد بشه اينه که نوع خروجيت يا فيلدت عددي نيست ...! در اين صورت بهتره cast بشه ..!
اگر کدت رو ببينم شايد بهتر بتونم راهنمايي کنم ..!
نقل قول: تابع ایجاد شماره افزایشی
سلام کد رو که واستون گذاشتم و به این صورت عمل میکنه هر بار که تابع فراخوانی میشه با مراجعه به جدول foroosh بزرگترین مقدار فیلد factorno را پیدا میکنه و اونو با عدد یک جمع میزنه
نقل قول: تابع ایجاد شماره افزایشی
نوع فیلدتون چیه؟ و اینکه بعد از عدد 10 خروجی اون Execute scaler چی میشه؟
نقل قول: تابع ایجاد شماره افزایشی
نوع فیلدم( nchar(10 هستش و بعد از 10 دوباره خود عدد 10 تکرار میشه
نقل قول: تابع ایجاد شماره افزایشی
کسی نیست جوابمو بده :گریه:
نقل قول: تابع ایجاد شماره افزایشی
کسی نبود جوابم بدونه؟:متعجب::متعجب::متعجب:
نقل قول: تابع ایجاد شماره افزایشی
ببین دوست عزیز شما چون نوع اون فیلدتون nchar همیشه max رو 9 میگیره و واسه همین 10 برمیگردونه .. چون مقایسه رشته ای انجام میده و نه عددی و تو مقایسه رشته ای چون عدد سمت چپ 10 ، یکه اون رو از 9 کوچیکتر میدونه. یعنی تو مقایسه رشته ای به ترتیب از کاراکتر سمت چپ شروع میکنه و هرکدوم بزرگتر بود رو برمیگردونه..
حالا یا باید کلا نوع ستونت رو int بذاری (که به نظرم این بهتره واسه اینکه فیلد آیدی شمازشی نباید nchar باشه) یا اینکه کوئری که واسه max گرفتن مینویسی رو اینجوری تغییر بدی Select Max(factorno + 0) From foroosh
اینجوری مقایسه عددی انجام میده