说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

ASP+SQLSERVER使用过程的问题。

编辑:说三道四文库 发布时间:2018-06-24 04:12
HTML文档下载 WORD文档下载 PDF文档下载
当在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>




cmdupdate.commandtype=4
不行啊,仍然出现上面的错误提示,不过,这次提示出现在第15行啊,而不是第14行。

第15行是:
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
你的ASP错了吧。改
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
'注意赋值@type
cmdupdate("@type")=="abcdefghijkl"
cmdupdate.execute
补充:你的@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") 
%> 

各位兄弟,按照你们的做法,还是提示同样的错误。

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



strtype="business"
cmdupdate.Parameters.Append cmdupdate.CreateParameter("@type",adchar,adparaminput,12,strtype)
该问题已解决:请将对应的代码取而代之, 即可

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
'做如下修改

<%
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>
谢谢,已经搞定了。
我想请教几个问题:这里的200、1、40是什么意思???

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


这句话又是什么意思???
cmdupdate.Parameters.Refresh
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘