rezaei manesh
دوشنبه 01 مرداد 1386, 18:25 عصر
سلام
من یک پروسیجر نوشتم اما نمی دونم چرا خطا می ده ظاهرش که درسته ؟!!!
ALTER PROCEDURE [dbo].[SpPrjRulePersonsByIdxidName] (@Id as decimal,@CurDate as char(5),@IdNAme as varchar(50))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SqlStr AS VARCHAR(400),
@paramlist as varchar(300)
SET @SqlStr='Select * from
PrjRule Inner Join
(Select personid,Max(BeginDate) As MyBDate
From PrjRule where begindate<= @xCurDate and enddate >= @xCurDate Group By personid) As MyPrjRule
On (MyPrjRule.personid=PrjRule.personid And PrjRule.BeginDate=MyPrjRule.MyDate) where @xIdname = @xId '
select @paramlist ='@xId decimal ,
@xCurDate char(5),
@xIdname varchar(50)'
EXEC sp_executesql @SqlStr,@paramlist,@Id,@CurDate,@IdName
END
اینم فراخوانی و خطا
exec [SpPrjRulePersonsByIdxidName] 11,'05/01','WorkGrpid'
Eroor:
Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
این باید رکورد های خاصی رو در یک محدوده تاریخ برگرداند
من یک پروسیجر نوشتم اما نمی دونم چرا خطا می ده ظاهرش که درسته ؟!!!
ALTER PROCEDURE [dbo].[SpPrjRulePersonsByIdxidName] (@Id as decimal,@CurDate as char(5),@IdNAme as varchar(50))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SqlStr AS VARCHAR(400),
@paramlist as varchar(300)
SET @SqlStr='Select * from
PrjRule Inner Join
(Select personid,Max(BeginDate) As MyBDate
From PrjRule where begindate<= @xCurDate and enddate >= @xCurDate Group By personid) As MyPrjRule
On (MyPrjRule.personid=PrjRule.personid And PrjRule.BeginDate=MyPrjRule.MyDate) where @xIdname = @xId '
select @paramlist ='@xId decimal ,
@xCurDate char(5),
@xIdname varchar(50)'
EXEC sp_executesql @SqlStr,@paramlist,@Id,@CurDate,@IdName
END
اینم فراخوانی و خطا
exec [SpPrjRulePersonsByIdxidName] 11,'05/01','WorkGrpid'
Eroor:
Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
این باید رکورد های خاصی رو در یک محدوده تاریخ برگرداند