J'essaye d'écrire une requête paramétrée dans ASP Classic, et je commence à avoir l'impression de me battre la tête contre un mur. Je reçois l'erreur suivante:Paramètre ASP Classic nommé dans une requête paramétrée: Doit déclarer la variable scalaire
Must declare the scalar variable "@something".
Je jurerait c'est ce que la ligne de bonjour fait, mais peut-être je manque quelque chose ...
<% 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
%>
Yip. J'ai réussi à bien faire les choses aussi. Mais j'aimerais vraiment que l'aspect nommé fonctionne, car il sera plus difficile de garder une trace de l'ordre des paramètres une fois que les requêtes ou les déclarations seront plus impliquées. –
Après avoir essayé quelques variantes de cela, je n'ai pas été capable de trouver une solution non plus. Je suspecte que l'utilisation de paramètres nommés ne fonctionnera que si vous appelez une procédure stockée, sans envoyer de commande SQL. –