第一篇文章,但感谢您从本网站迄今获得的所有帮助。ASP经典VBscript参数化SQL查询?
我试图参数化SQL查询:如果我使用(没有参数)
query_url = Request.QueryString("ID")
Set rs = Server.CreateObject("ADODB.Recordset")
Set cmd = server.createobject("ADODB.Command")
cmd.ActiveConnection = Internet_String
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT NAME FROM OWNER.TABLE WHERE ID = " + "?" + ""
Set param = cmd.CreateParameter(, , ,200 , Replace(query_url, "'", "''"))
cmd.Parameters.Append param
Set rs = cmd.Execute()
所以:
SELECT NAME FROM OWNER.TABLE WHERE ID = " + Replace(query_url, "'", "''") + ""
它正常工作,所以我知道我的数据库连接和query_url是加工。我的SQL语句在参数化查询中出错了吗?我尝试了很多不同的方式。
当我在Dreamweaver中运行我的参数化查询时,页面不会随时加载,只是无限旋转,我假设它没有从数据库获取响应。
谢谢!
编辑的帮助
好了感谢到目前为止,我越来越近。现在的页面加载,但等领域仍是空白,什么继承人我走到这一步:
Set rs = Server.CreateObject("ADODB.Recordset")
Set cmd = server.createobject("ADODB.Command")
cmd.ActiveConnection = internet_string
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT NAME FROM OWNER.TABLE WHERE ID = @param"
Set param = cmd.CreateParameter("@param", , ,200 , query_url)
cmd.Parameters.Append param
response.Write(param)
Set rs = cmd.Execute()
这里是我如何引用数据:
<strong>Name: <%=(rs.Fields.Item("NAME").Value)%></strong>
任何想法?
不知道有关传统的ASP和VBScript逃跑“,但在其他的语言,你不需要当您发送查询参数时引号。无论如何,请使用您的参数的硬编码值作为疑难解答方法。 –
不要在参数值中替代撇号(即使用'cmd.CreateParameter(,,200,query_url')。由于您使用的是参数,所有转义特殊字符的工作都是在幕后完成的。 –