我试图在ASP经典中编写参数化的查询,并且它开始感觉像我在靠墙敲打我的头。我收到以下错误:ASP经典的参数在参数化查询中:必须声明标量变量
Must declare the scalar variable "@something".
我发誓那是个招呼线做什么,但也许我失去了一些东西......
<% OPTION EXPLICIT %>
<!-- #include file="../common/adovbs.inc" -->
<%
Response.Buffer=false
dim conn,connectionString,cmd,sql,rs,parm
connectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=.\sqlexpress;Initial Catalog=stuff"
set conn = server.CreateObject("adodb.connection")
conn.Open(connectionString)
set cmd = server.CreateObject("adodb.command")
set cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select @something"
cmd.NamedParameters = true
cmd.Prepared = true
set parm = cmd.CreateParameter("@something",advarchar,adParamInput,255,"Hello")
call cmd.Parameters.append(parm)
set rs = cmd.Execute
if not rs.eof then
Response.Write rs(0)
end if
%>
业。我设法做到了这一点。但是我真的很想让命名方面起作用,因为一旦查询或语句更多地涉及到参数顺序,就很难跟踪参数顺序。 – 2009-07-08 06:59:44
尝试了几个变化后,我无法提出解决方案。我怀疑只有在调用存储过程时才使用命名参数,而不是发送SQL命令。 – 2009-07-14 20:11:59