Параметризованный запрос 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"

Полезные ссылки

Другие вопросы по тегам