【发布时间】:2021-01-17 09:51:26
【问题描述】:
有什么方法可以将CursorType 设置为我从ADODB.Command.Execute 获得的ADODB.RecordSet?
我知道如果我这样做是有可能的:
rs = Server.CreateObject("ADODB.RecordSet")
rs.Open(cmd)
但是,我目前将Command.Execute 与Parameters 参数一起使用,它会自动处理? 参数的变量数组以进行安全插值。因此使用RecordSet.Open 似乎不是一种选择。
具体来说,我的代码目前看起来像:
function ExecuteSQL(conn, sql, args)
set ExecuteSQL_CmdObj = Server.CreateObject("ADODB.Command")
ExecuteSQL_CmdObj.CommandType = adCmdText
ExecuteSQL_CmdObj.CommandText = sql
ExecuteSQL_CmdObj.ActiveConnection = conn
if Ubound(args) = -1 then
set ExecuteSQL = ExecuteSQL_CmdObj.Execute
else
set ExecuteSQL = ExecuteSQL_CmdObj.Execute(,args)
end if
end function
如果我想维护同样的 API,但也控制CursorType,如何实现?
【问题讨论】:
-
这个问题的另一种表述是:有没有办法用
RecordSet.Open自动处理?参数的变体数组?
标签: sql vbscript asp-classic sql-injection adodb