Невозможно установить свойства объекта команды в ASP Classic - PullRequest
0 голосов
/ 17 сентября 2018

Использование IIS 7.5 с SQL Server 2008. Некоторые экраны будут доступны клиентам после входа в систему. Первоначально было поручено выяснить, почему некоторые поля не отображаются. Исправлено. Но также обнаружил, что некоторые страницы содержат строки SQL, которые содержат хранимую процедуру и добавляют параметры, которые обычно не предоставляются пользователями, но потенциально могут использоваться. Таким образом, в качестве вторичной задачи, попытались параметризовать запрос. Я обнаружил, что, как только я пытаюсь присвоить значения любым свойствам объекта команды, сервер возвращает ошибку 500. Я ничего не вижу в журналах, но думаю, что это потому, что я не нашел правильные журналы.

Вот тестовый код, который я пробую:

<% 
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
%>

Закомментированный код - это место, где начинаются проблемы. Первоначально я настроил эту структуру как With cmd, но попытался изменить ее, чтобы точно определить, где возникает проблема. Он не работает каждый раз, когда я пытаюсь назначить что-либо для cmd.propertyname. Итак, выше, если я попытаюсь закомментировать одну из этих строк, она сразу выдаст 500 ошибок. Сначала я подумал, что это потому, что я не правильно использовал .CreateParameter, за исключением того, что это не просто строка, а когда я установил любые свойств объекта cmd.

Я никогда не делал этого в VBScript, и аналогичная структура в VBA для Access работает нормально (хотя я также в настоящее время пытаюсь отладить, почему он считает, что я не предоставляю правильное количество параметров для хранимой процедуры , но я думаю, что у меня есть две ошибочные ошибки здесь.)

...