Я в первую очередь разработчик PHP, но у меня есть старый ASP, который один из наших предыдущих разработчиков сделал, который сломался, и я не могу понять, как это исправить. У нас есть программа, которая отправляет некоторые переменные на страницу прослушивателя, которая сравнивает эти данные с регистрационными кодами базы данных msSQL, а затем сообщает программе, действителен ли регистрационный код.
Я получаю следующую ошибку, где
.Parameters.Append .CreateParameter("@code", adVarChar, 1, 50, x)
это строка 134:
Ошибка ADODB.Parameters «800a0e7c»
Объект параметра определен неправильно. Была предоставлена противоречивая или неполная информация.
/checkregistrationpro.asp, строка 134
Я уже указал любые именованные константы во включаемом файле, которые я не включил в код, так что это не имеет отношения к этому.
Моя строка подключения (я уже проверил правильность этих настроек):
set conn = Server.CreateObject("ADODB.Connection")
set cmd = Server.CreateObject("ADODB.Command")
sConnString = "Provider=sqloledb; Data Source=MYDATASOURCE; Initial Catalog=MYCATALOG; User ID=MYUSERID; Password='MYPASSWORD';"
conn.Open sConnString
Мой код:
...
Function BlockInjectCode(StrVal)
BlockInjectCode = Replace(StrVal,"--","")
BlockInjectCode = Replace(BlockInjectCode,"'","")
BlockInjectCode = Replace(BlockInjectCode,"""","")
if instr(lcase(BlockInjectCode),"<") > 0 then
BlockInjectCode = ""
end if
End Function
x = BlockInjectCode(Request.QueryString("rid"))
uid = BlockInjectCode(Request.QueryString("uid"))
chkcode = BlockInjectCode(Request.QueryString("Code"))
CheckPro = BlockInjectCode(Request.QueryString("pro"))
CheckProProd = BlockInjectCode(Request.QueryString("prod"))
CheckProMac = BlockInjectCode(Request.QueryString("mac"))
MacAdd = CheckProMac
CodeValid = False
if x <> "" and uid <> "" then
'-- Get information about this registration code.
sqlStr = "select * from MYTABLE where Code = ? and IsValid = 1"
set cmdCodes = Server.CreateObject("ADODB.Command")
Set cmdCodes.ActiveConnection = Conn
cmdCodes.CommandText = sqlStr
with cmdCodes
.Parameters.Append .CreateParameter("@code", adVarChar, 1, 50, x)
end With
Set rsCodes = cmdCodes.execute
...
global.asa
, и у вас есть доступ ко всем константам ADODB DLL, которые вы могли бы захотеть. Похоже, у вас есть функция, которая заново изобретает колесо. Я бы даже порекомендовалadovbs.asp
, а это о чем-то говорит. - person user692942   schedule 20.02.2016global.asa
, хотя вы могли бы предложить IIS загружать их напрямую из библиотеки типов, чтобы вам не нужно было определять, а затем просто добавить директивуMETADATA
на страницу/global.asa
. - person user692942   schedule 21.02.2016