asp调sql存储过程提示参数错误

nettt 2011-03-06 07:28:42
我在asp里写也这段代码目的是调用sql里的一个存储过程。
这个存储过程一共有3个输入参数和一个返回值,也就是Ins_row
这段代码在运行到mycomm.execute时候显示,'存储过程参数错误'
不知道这个三个输入参数如何定义:
DECLARE @return_value int

EXEC @return_value = [dbo].[Update_TR_V1]
@P_date = N'20110226',
@P_user = N'TR',
@P_shift = N'4-1-1'

SELECT 'Return Value' = @return_value

GO

''''''''''''''''''''''''''''
<%
dim mycomm,mypara
set mycomm=server.createobject("adodb.command")
mycomm.activeconnection=connstr '连接字符
mycomm.commandtext="Update_TR_V1" '存储过程
mycomm.commandtype=4 '说明这是个prod
mycomm.prepared=true '编译sql

'定义输入参数(200代表参数数据类型,1代表输入参数,10代表数据长度)
mycomm.parameters.append mycomm.createParameter("@P_date",200,1,10,P_date)
mycomm.parameters.append mycomm.createParameter("@P_user",200,1,10,P_user)
mycomm.parameters.append mycomm.createParameter("@P_shift",200,1,10,P_shift)
'定义返回值
set mypara=mycomm.createparameter("Ins_row",2,4)
'I是存储过程中的变量,在asp中最好是和sql一样的
mycomm.parameters.Append mypara
mycomm.execute
'取返回值
dim Retvalue
Retvalue=mycomm.parameters(0)
set mycomm=nothing
end if
%>
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nettt 2011-03-07
  • 打赏
  • 举报
回复
没问题,已经声明过了,我这里没贴出来,存储过程也没问题,只是有一个类似超时的问题
CainLai 2011-03-07
  • 打赏
  • 举报
回复
返回参数好像要最先声明
nettt 2011-03-07
  • 打赏
  • 举报
回复
颠倒了一下顺序就可以了,但好像超时了,这个存储过程运行需要2分30秒。我在asp中加了
<%
Server.ScriptTimeout=36000000
%>
但还是报下面这个错误
Microsoft OLE DB Provider for SQL Server 错误 '80004005'

[DBNETLIB][ConnectionWrite (send()).]一般性网络错误。请检查网络文档。

/paos2.asp,行 99
nettt 2011-03-07
  • 打赏
  • 举报
回复
只是颠倒了一下顺序,
hongmei85 2011-03-06
  • 打赏
  • 举报
回复

dim mycomm,mypara
set mycomm=server.createobject("adodb.command")
mycomm.activeconnection=connstr '连接字符
mycomm.commandtext="Update_TR_V1" '存储过程
mycomm.commandtype=4 '说明这是个prod
mycomm.prepared=true '编译sql
set mypara=mycomm.createparameter("RETURN",2,4)
'I是存储过程中的变量,在asp中最好是和sql一样的
mycomm.parameters.Append mypara

'定义输入参数(200代表参数数据类型,1代表输入参数,10代表数据长度)
mycomm.parameters.append mycomm.createParameter("@P_date",200,1,10,P_date)
mycomm.parameters.append mycomm.createParameter("@P_user",200,1,10,P_user)
mycomm.parameters.append mycomm.createParameter("@P_shift",200,1,10,P_shift)
'定义返回值
mycomm.execute
'取返回值
dim Retvalue
Retvalue=mycomm.parameters(0)
set mycomm=nothing
end if


hongmei85 2011-03-06
  • 打赏
  • 举报
回复
试下

dim mycomm,mypara
set mycomm=server.createobject("adodb.command")
mycomm.activeconnection=connstr '连接字符
mycomm.commandtext="Update_TR_V1" '存储过程
mycomm.commandtype=4 '说明这是个prod
mycomm.prepared=true '编译sql

'定义输入参数(200代表参数数据类型,1代表输入参数,10代表数据长度)
mycomm.parameters.append mycomm.createParameter("@P_date",200,1,10,P_date)
mycomm.parameters.append mycomm.createParameter("@P_user",200,1,10,P_user)
mycomm.parameters.append mycomm.createParameter("@P_shift",200,1,10,P_shift)
'定义返回值
set mypara=mycomm.createparameter("RETURN",2,4)
'I是存储过程中的变量,在asp中最好是和sql一样的
mycomm.parameters.Append mypara
mycomm.execute
'取返回值
dim Retvalue
Retvalue=mycomm.parameters(3)
set mycomm=nothing
end if

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧