Первое сообщение, но спасибо за всю помощь, которую я получил с этого сайта.ASP Classic VBscript Параметрированный SQL-запрос?
Я пытаюсь параметризовать SQL-запрос:
query_url = Request.QueryString("ID")
Set rs = Server.CreateObject("ADODB.Recordset")
Set cmd = server.createobject("ADODB.Command")
cmd.ActiveConnection = Internet_String
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT NAME FROM OWNER.TABLE WHERE ID = " + "?" + ""
Set param = cmd.CreateParameter(, , ,200 , Replace(query_url, "'", "''"))
cmd.Parameters.Append param
Set rs = cmd.Execute()
Так что, если я использую (без параметров):
SELECT NAME FROM OWNER.TABLE WHERE ID = " + Replace(query_url, "'", "''") + ""
Он отлично работает, так что я знаю, что мое подключение к БД и query_url являются за работой. Что-то не так с моей операцией SQL в параметризованном запросе? Я пробовал это по-разному.
Когда я запускаю свой параметризованный запрос в Dreamweaver, страница не будет загружаться в любое время, просто вращается бесконечно, я предполагаю, что она не получает ответ от БД.
Спасибо!
EDIT
Alright спасибо за помощь до сих пор, я все ближе. Нагрузки страницы сейчас, но поля все еще пусто, Вот что я получил до сих пор:
Set rs = Server.CreateObject("ADODB.Recordset")
Set cmd = server.createobject("ADODB.Command")
cmd.ActiveConnection = internet_string
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT NAME FROM OWNER.TABLE WHERE ID = @param"
Set param = cmd.CreateParameter("@param", , ,200 , query_url)
cmd.Parameters.Append param
response.Write(param)
Set rs = cmd.Execute()
Вот как я ссылки на данные:
<strong>Name: <%=(rs.Fields.Item("NAME").Value)%></strong>
Любые идеи?
Не уверен, что классические осины и VBScript, но и на других языках не нужен кавычки при отправке параметров запроса. В любом случае используйте жестко закодированное значение для вашего параметра как метод устранения неполадок. –
Не подставляйте апострофы в значение параметра (т. Е. Используйте 'cmd.CreateParameter (,,, 200, query_url'). Поскольку вы используете параметры, вся работа по экранированию специальных символов выполняется за кулисами. –