Параметризованный запрос ADO не возвращает никакого результата
Я использую этот запрос, чтобы получить некоторые результаты из моего VBScript на классической странице ASP, и он не возвращается с какими-либо значениями. Страница пуста и ошибок тоже нет. Любое предложение, пожалуйста?
dim cmd, admin_no
admin_no = request.QueryString("admin")
set cmd = server.CreateObject("ADODB.Command")
cmd.ActiveConnection = con
sql = ""
sql = sql & "DECLARE @admin_no int;"
sql = sql & "SELECT field1, field2 FROM mydb.mytable where admin_no = @admin_no"
cmd.CommandText = sql
cmd.CommandType = adCmdText
cmd.Parameters.Append cmd.CreateParameter("@admin_no", adInteger, adParamInput, , admin_no)
'response.write(cmd.Parameters(0))
'response.write(cmd.CommandText)
set rs = server.CreateObject("ADODB.Recordset")
rs.Open cmd
1 ответ
Решение
Проблема здесь adCmdText
использования ?
заполнитель для передачи параметров, изменить строку
sql = sql & "SELECT field1, field2 FROM mydb.mytable where admin_no = @admin_no"
в
sql = sql & "SELECT field1, field2 FROM mydb.mytable where admin_no = ?"
Если вы хотите передать именованные параметры в свой запрос, у вас не так много вариантов, но этот маленький трюк полезен.
sql = ""
sql = sql & "DECLARE @admin_no int;"
sql = sql & "SET @admin_no = ?;"
sql = sql & "SELECT field1, field2 FROM mydb.mytable where admin_no = @admin_no"