第一篇文章,但感謝您從本網站迄今獲得的所有幫助。ASP經典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中運行我的參數化查詢時,頁面不會隨時加載,只是無限旋轉,我假設它沒有從數據庫獲取響應。
謝謝!
編輯的幫助
好了感謝到目前爲止,我越來越近。現在的頁面加載,但等領域仍是空白,什麼繼承人我走到這一步:
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>
任何想法?
不知道有關傳統的ASP和VBScript逃跑「,但在其他的語言,你不需要當您發送查詢參數時引號。無論如何,請使用您的參數的硬編碼值作爲疑難解答方法。 –
不要在參數值中替代撇號(即使用'cmd.CreateParameter(,,200,query_url')。由於您使用的是參數,所有轉義特殊字符的工作都是在幕後完成的。 –