PDA

View Full Version : سوال: مشکل با دستور in در کوئری



hamid_14
پنج شنبه 05 تیر 1393, 13:08 عصر
سلام
در یکی از شرط های کوئری از دستور in استفاده شده و دارای یک پارامتر ورودی هست.مشکل اینجاست درصورتی که ورودی پارامتر یک رکورد باشه درست عمل می کنه اما وقتی چند رکورد میشه مثلا: 1,2,3 هیچی پیدا نمی کنه.لطفا راهنمائی کنید ایراد کارم از کجاست.

همچنین در صورتی که مستقیم در کوئری بزنم درسته مثل کد زیر:

Where (t1.CNak in (1,2,3))

اما با استفاده از این کد مشکل داره

ورودی incnak = 1,2,3


Where (t1.CNak in (:incnak))

یوسف زالی
پنج شنبه 05 تیر 1393, 15:02 عصر
سلام.
خب معلومه که نمی فهمه.
اس کیو ال سینتکس خودش رو داره. باید طبق همون عمل کنید.

hamid_14
جمعه 06 تیر 1393, 01:12 صبح
ممنون ولی اشکال سینتکسم چیه؟
چطوری مینونم با انتخاب رکورد ها توسط کاربر اطلاعات ارسال کنم.البته با استفاده از پارامتر

یوسف زالی
جمعه 06 تیر 1393, 03:36 صبح
یکی از راهها این طوریه:


'select * from TBL where F in (' + YourStringContainsParams + ')'

hamid_14
جمعه 06 تیر 1393, 12:34 عصر
این راه بلدم,می خوام با استفاده از پارامتر در خود کوئری این کارو انجام بدم.لطفا اگه راهی هست راهنمائی کنید

یوسف زالی
جمعه 06 تیر 1393, 12:58 عصر
باید پارامترتون رو متنی بفرستید، بعد اون رو در اس پی تبدیل به یک متن کوئری کرده و در همون جا رشته ایجاد شده رو ران کنید.
برای کار به صورت کاملا پارامتری، باید پارامترتون رو به فرم XML پاس بدید. که فکر می کنم در کوئری توجیه منطقی کمتری داشته باشه.