PDA

View Full Version : پارامترهای store procedure



amir65gh
دوشنبه 08 آذر 1389, 07:43 صبح
سلام به همه دوستان
یه سوال
یه store procedure نوشتم که شامل 10 تا پارامتر ورودی است .که هر کدوم از این پارامترها روی شرط کوئری دخالت داره.چکار کنم که اگه از ورودی یکی از پارامترها مقداری دریافت نکرد اون شرط تو کوئری بی اثر بشه؟

Rezahak
دوشنبه 08 آذر 1389, 09:28 صبح
سلام به همه دوستان
یه سوال
یه store procedure نوشتم که شامل 10 تا پارامتر ورودی است .که هر کدوم از این پارامترها روی شرط کوئری دخالت داره.چکار کنم که اگه از ورودی یکی از پارامترها مقداری دریافت نکرد اون شرط تو کوئری بی اثر بشه؟

سلام اولا شما بايد دريافت نكردن پارامتر را يك جوري تعريف كنيد مثلا بايد يك مقدار default براي هر پارامتر قرار دهيد كه ترجيحا خارج از بازه مورد قبول باشد مثلا اگر يكي از پارامترها از نوع int است ولي فقط اعداد مثبت در آن قابل قبول است يك عدد منفي مانند -1 را به عنوان default قراردهيد سپس در query بايك case ...when ...then... end ساده بررسي كنيد كه اگر مقدار پارامتر برابر default بود آن قسمت شرط true شود
اگر كد خودتون را با توضيحات بگذاريد براتون تكميلش مي كنيم

Reza_Yarahmadi
دوشنبه 08 آذر 1389, 09:32 صبح
سلام
میتونید برای پارامترها یک مقدار پیش فرض بذارید طوری که در شرط بی اثر بشه ، مثلا برای فیلدهای رشته ای میتونید مقدار پیش فرض رو % قرار بدید. با این کار عملا شرطی که این فیلد رو چک میکنه بی اثر میشه.
راه حل دیگه اینه که با توجه به مقدار پارامترها (با استفاده از دستور If) یک Dynamic Query بسازید این کوئری رو اجرا کنید.