PDA

View Full Version : sp برای جستجوی چند پارامتری



sa_2008
سه شنبه 28 اردیبهشت 1389, 16:00 عصر
آیا کسی sp ای داره که جستجوی فیلدها رو بر این اساس انجام بده :
جدولی داریم که از یازده فیلد مثلاً نام و نام خانوادگی و شماره تلفن و .... تشکیل شده .حالا می خواهیم 1- اگر هر کدام از این فیلدها را بعنوان شرط دادیم جدول فیلتر شود 2- اگر دو تا از فیلدها رو بصورت ترکیبی بعنوان شرط دادیم جدول محدود تر بشه . اگر سه تا از فیلدها رو دادیم جدول محدود تر و الی آخر ....در ضمن انتخاب فیلدها (تقدم و تاخر فیلدهای جستجو )در اختیار کاربر است یعنی بر اساس هر کدام از فیلدها خواست جستجو کند جدول فیلتر شود.

amir_alaki
سه شنبه 28 اردیبهشت 1389, 21:25 عصر
با سلام
می تونین از sp_executesql استفاده کنین و رشته جستجو رو در Sp بسازین و اجرا کنین مثل:


ALTERProcedure [dbo].[Category_Select]
@CatID int=Null,
@CatParentID int=Null,
@CatTitle varchar(50)=Null
As
Declare @SQL nvarchar(Max)
Declare @SQLParam nvarchar(Max)
Set @SQL='SELECT CatID, CatParentID, CatTitle
FROM tblCategory
WHERE (1 = 1) '
IF @CatID IsNOTNull
Set @SQL =@SQL +' And CatID=@XCatID '
IF @CatParentID IsNOTNull
Set @SQL =@SQL +' And CatParentID = @XCatParentID '
IF @CatParentID =-1
Set @SQL =@SQL +' And CatParentID IS NULL'

IF @CatTitle IsNOTNull
Set @SQL =@SQL +' And CatTitle = @XCatTitle '
Set @SQLParam =' @XCatID int,
@XCatParentID int,
@XCatTitle varchar(50) '
execsp_executesql @SQl , @SQLParam, @CatID,@CatParentID,@CatTitle





فکر کنم مثال مشخصه در این Sp اگر پارامتر ها هر کدوم Null باشند در شرط جستجو وارد نمیشن ولی اگر مقدای داشته باشن در شرط اعمال میشن.


اگر بازم مشکل بود در خدمتم
موفق باشید