MohammadSoft
چهارشنبه 12 دی 1386, 09:57 صبح
سلام خدمت همه دوستان
من یه جدول دارم که برای یه سری پارامتر به این شکل :
ID - ParameterName - ParamaterValue
مقدار ParamaterValue نام فیلد یکی از جداول من هست(جدول اعضا) ، به عنوان مثال داده های داخلش به این صورت هست :
ID = 1 - ParameterName = Name - ParamaterValue = P_Name
حالا من می خوام یه SP بنویسم که بهش یه نام پارامتر و یه شماره عضویت بدم و اون SP مقدار اون فیلد رو برام برگردونه . این کار رو با FUNCTION به راحتی میشه انجام داد ولی مشکل اینجاست که توی FUNCTION نمیشه از SP_EXEUTESQL برای اجرا کردن دستورات دینامیک استفاده کرد :ناراحت:!
شدیدا به مساعدت دوستان احتیاج دارم .
این هم شبیه کدی است که دارم :
CREATEPROCEDURE [rsa].[GetParameterValue]
@ParameterName NVARCHAR(50),
@MemberCode INT,
@Result NVARCHAR(50)OUTPUT
AS
DECLARE @FieldName VARCHAR(50)
SET @FieldName =''
SELECT @FieldName = ParameterValue FROM Parameter WHERE ParameterName = @ParameterName
DECLARE @QUERY VARCHAR(200)
SET @QUERY ='SELECT '+ @FieldName +' FROM MEMBER WHERE CODE ='+CAST( @MemberCode ASVARCHAR(20))
EXEC(@QUERY)
SET @Result = ?????? -- اینجا نمی دونم چی کار باید بکنم
اردات
من یه جدول دارم که برای یه سری پارامتر به این شکل :
ID - ParameterName - ParamaterValue
مقدار ParamaterValue نام فیلد یکی از جداول من هست(جدول اعضا) ، به عنوان مثال داده های داخلش به این صورت هست :
ID = 1 - ParameterName = Name - ParamaterValue = P_Name
حالا من می خوام یه SP بنویسم که بهش یه نام پارامتر و یه شماره عضویت بدم و اون SP مقدار اون فیلد رو برام برگردونه . این کار رو با FUNCTION به راحتی میشه انجام داد ولی مشکل اینجاست که توی FUNCTION نمیشه از SP_EXEUTESQL برای اجرا کردن دستورات دینامیک استفاده کرد :ناراحت:!
شدیدا به مساعدت دوستان احتیاج دارم .
این هم شبیه کدی است که دارم :
CREATEPROCEDURE [rsa].[GetParameterValue]
@ParameterName NVARCHAR(50),
@MemberCode INT,
@Result NVARCHAR(50)OUTPUT
AS
DECLARE @FieldName VARCHAR(50)
SET @FieldName =''
SELECT @FieldName = ParameterValue FROM Parameter WHERE ParameterName = @ParameterName
DECLARE @QUERY VARCHAR(200)
SET @QUERY ='SELECT '+ @FieldName +' FROM MEMBER WHERE CODE ='+CAST( @MemberCode ASVARCHAR(20))
EXEC(@QUERY)
SET @Result = ?????? -- اینجا نمی دونم چی کار باید بکنم
اردات