ASP Classic - 显示MSSQL2000存储过程的结果?

时间:2011-11-03 16:41:12

标签: stored-procedures vbscript asp-classic

我对ASP并不是很精通,但这就是我的客户网站所写的内容,所以我采取了简单的方法。

基本上,我试图根据我给出的值显示存储过程的结果。应该从SP返回多个记录,因此我不确定是否需要循环访问它们,或者是什么。

到目前为止,我有

set rst2 = server.createobject("ADODB.Recordset")
rst2.open "exec zSProc_Name of SP " & resID,conL  

while not rst2.eof
            Response.Write(rst2.Fields("fieldname1").value & ", ")
            Response.Write(rst2.Fields("fieldname2").value & "<br />")
            Response.Write(rst2.Fields("fieldname3").value & "<br />")
            Response.Write(rst2.Fields("fieldname4").value & "<br />")
        rst2.movenext
        wend

set rst2 = nothing 'Clear up memory used
rst2.close

任何人都可以清楚我在这里做错了吗?

1 个答案:

答案 0 :(得分:4)

您在调用Nothing之前将rst2分配给Close,这样会导致“..对象未设置”错误。交换线条来修复它。

您可能会从客户端发送到页面的数据中获取resID。如果是这样,那么使用字符串连接来创建SQL批处理会使站点暴露于SQL注入攻击。

相反,您应该使用ADODB.Command对象来执行SP而不是构造SQL。有关示例,请咨询KB164485

您正在直接编写字段值,大部分时间都可以,但如果任何文本包含<&等字符,则无法正确呈现。用Server.HTMLEncode方法换行值。