ASP+SQLSERVER使用过程的问题。

exten 2004-01-26 08:58:02
当在ASP执行COMMAND语句时,系统提示下列错误,请问怎么解决,ASP如何才能调用SQLSERVER的过程???:


Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

ADODB.Command 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/zsl/cf~222.asp,行14



相关过程:
CREATE procedure usp_updateprices
@type char(12)

as
update titles
set price=price*(1+10/100)
where type=@type
GO



相关ASP文件:
第十四行就是这一行:cmdupdate.commandtype=adcmdstoredproc



<%
set conn=server.createobject("adodb.connection")
conn.open"Provider=SQLOLEDB;Data Source=127.0.0.1;UID=sa;PWD=yourpassword;DataBase=pubs"
dim cmdupdate
dim lngrecs
dim strtype
dim curpercent
strtype="business"

set cmdupdate=server.createobject("adodb.command")

cmdupdate.activeconnection=conn
cmdupdate.commandtext="usp_updateprices"
cmdupdate.commandtype=adcmdstoredproc
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
cmdupdate.execute

set cmdupdate=nothing
%>
<html>
<head>
<title>Untitled</title>
</head>

<body>


</body>
</html>




...全文
44 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
exten 2004-01-27
谢谢,已经搞定了。
我想请教几个问题:这里的200、1、40是什么意思???

("@type",200,1,40,strtype)


这句话又是什么意思???
cmdupdate.Parameters.Refresh
  • 打赏
  • 举报
回复
exten 2004-01-27
各位兄弟,按照你们的做法,还是提示同样的错误。

另外,我已经赋值了啊。(是不是我的赋值方式错误???)
我将@type赋值为strtype,而strtype="business"



strtype="business"
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
  • 打赏
  • 举报
回复
zjcxc 元老 2004-01-27
'做如下修改

<%
set conn=server.createobject("adodb.connection")
conn.open"Provider=SQLOLEDB;Data Source=127.0.0.1;UID=sa;PWD=yourpassword;DataBase=pubs"
dim cmdupdate
dim lngrecs
dim strtype
dim curpercent
strtype="business"

set cmdupdate=server.createobject("adodb.command")

cmdupdate.activeconnection=conn
cmdupdate.commandtext="usp_updateprices"
cmdupdate.commandtype=4
cmdupdate.Parameters.Refresh
cmdupdate.Parameters("@type")=strtype
cmdupdate.execute

set cmdupdate=nothing
%>
<html>
<head>
<title>Untitled</title>
</head>

<body>


</body>
</html>
  • 打赏
  • 举报
回复
yown 2004-01-27
该问题已解决:请将对应的代码取而代之, 即可

cmdupdate.commandtype=4
set param=cmdupdate.createparameter("@type",200,1,40,strtype)
cmdupdate.Parameters.Append param 'cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
cmdupdate.execute
  • 打赏
  • 举报
回复
zhaoloudy 2004-01-26
补充:你的@type char(12) 是input参数,要赋值的呀。
给你个例子
一个输入的参数的存储过程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText="{call oneinput(?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger ,adParamInput )
cmd("@aaa")=100

cmd.Execute()

%>

一个输入参数和一个输出的参数
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"

conn.Open strconn
set cmd.ActiveConnection=conn

cmd.CommandText = "{call oneinout(?,?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

cmd.Execute()

bbb=cmd("@bbb")
%>

  • 打赏
  • 举报
回复
zhaoloudy 2004-01-26
你的ASP错了吧。改
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
'注意赋值@type
cmdupdate("@type")=="abcdefghijkl"
cmdupdate.execute
  • 打赏
  • 举报
回复
exten 2004-01-26
不行啊,仍然出现上面的错误提示,不过,这次提示出现在第15行啊,而不是第14行。

第15行是:
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
  • 打赏
  • 举报
回复
happydreamer 2004-01-26
cmdupdate.commandtype=4
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2004-01-26 08:58
社区公告
暂无公告