谁帮我解决一下一个存储过程的问题!谢谢了!
存储过程如下:
CREATE PROCEDURE .dbo.updateProject(@PID int , @proClass tinyInt ,@proData varchar(8000))
AS
if @proClass=1
begin
exec updatekeyproject @proClass,@PID ,@proData
end
GO
CREATE PROCEDURE .dbo.updateKeyProject @proClassID tinyint,@PID int, @proData varchar(8000)
AS
--更新主表
declare @sql varchar(400)
declare @updateStr varchar(8000)--更新主表的数据
declare @dynamicTabStr varchar(8000)--动态表部分的数据
set @updateStr=dbo.toindex(@proData, '*^* ')
set @dynamicTabStr=dbo.indexTotail(@proData, '*^* ')
set @updateStr=@updateStr+ '^ ' ' '+convert(varchar(20),GETDATE())+ ' ' ' '--加上更新时间
declare @condiction varchar(50)
set @condiction= 'where proClassID= '+convert(varchar(3),@proClassID)+ ' and projectID= '+convert(varchar(7),@PID)
exec updateRecord 'K_UpdateKeyProView ',@updateStr, 'v ',@condiction
declare @exeSt varchar(400)--用于执行SQL的字符串
--更新成员表
declare @Arrs varchar(400),@oneRecord varchar(100)
----.....后面还有代码,但没什么问题的!
GO
ASP调用代码:
function UpdateProjectEx(PID,proClass,proData)
dim cmd
set cmd=Server.CreateObject( "ADODB.Command ")
cmd.ActiveConnection=conn
cmd.CommandText= "updateProject "
cmd.CommandType=adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter( "@PID ", adInteger,3, adParamInput ,PID)
cmd.Parameters.Append cmd.CreateParameter( "@proClass ", adInteger ,adParamInput , 3,proClass) '
cmd.Parameters.Append cmd.CreateParameter( "@proData ", adVarChar,adParamInput , 8000, proData)
cmd.Execute
set cmd.activeconnection=nothing
set cmd=nothing
end function
在查询分析器里没发现什么问题啊.怎么在ASP里就是出现以下的问题?
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]形式参数 '@PID ' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。
/newstsp/techAudit/inc/editproject.asp, 第 52 行
??
在线等啊.我扛不住了.
------解决方案-------------------- cmd.Parameters.Append cmd.CreateParameter( "@PID ", adInteger, adParamInput ,PID)