在SQL Server 2008中使用IIS 7.5。登录后,某些屏幕会显示给客户端。最初的任务是找出某些字段未显示的原因。固定的。但是还发现,某些页面包含SQL字符串,这些字符串包含存储过程并添加用户通常不提供但可能会被利用的参数。因此,作为次要任务,已尝试对查询进行参数化。我发现的是,一旦我尝试为命令对象的任何属性分配值,就会导致服务器返回500错误。我没有在日志中看到任何东西,但是我认为那是因为我没有找到正确的日志。
这是我正在尝试的测试代码:
jQuery
注释的代码是开始出现问题的地方。最初,我将其设置为<%
Dim strCnxn
strCnxn = "DSN=myDSN"
Dim objConnection
Set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.Mode = acModeRead
objConnection.Open strCnxn
Dim cmd
cmd = Server.CreateObject("ADODB.Command")
Dim rsPmts
Set rsPmts = CreateObject("ADODB.Recordset")
'cmd.ActiveConnection = objConnection
'cmd.CommandType = adCmdStoredProc
'cmd.CommandType = 4
'cmd.CommandText = "spNewPayments"
'cmd.Parameters.Refresh
'cmd.Parameters.Append .CreateParameter("@claim_id", adInteger, adParamInput, , 162611)
'rsPmts.Open cmd, , adOpenForwardOnly, adLockReadOnly
'rsPmts.Close
Set rsPmts = Nothing
Set objConnection = Nothing
Set cmd = Nothing
%>
结构,但是尝试更改该结构以查看问题发生的确切位置。每当我尝试将任何内容分配给cmd.propertyname时,它都会失败。因此,在上面,如果我尝试注释掉其中的几行,则会立即显示500错误。起初,我认为这是因为我没有正确使用With cmd
,除了它似乎不只是那一行,而是当我在cmd上设置 any 的属性时对象。
我从未在VBScript中完成此操作,并且VBA for Access中的类似结构运行良好(尽管我目前也在尝试调试为什么它认为我没有为存储过程提供正确数量的参数) ,但我想这里有两个令人困惑的错误。)