Attualmente sto lavorando su un progetto ASP classico che parla con un database Oracle. Sto cercando di trovare un modo per chiamare in modo sicuro uno script Oracle PL/SQL e passare i parametri con ADO. La soluzione attualmente costruisce lo script SQL a mano con variabili integrate come questo:Chiamare una query Oracle con parametri da ADODB in ASP classico
strSQL = "SELECT field1, etc FROM my_table WHERE (field = '" & filter_value & "')"
Questo, naturalmente, è brutto e insicuro, e ad abusi.
Il codice che ho finora (trafugato da vari siti web basati ASP classico non) si presenta così:
dim strSQL, oConn, oCommand, oParam
set oConn = server.createobject("ADODB.Connection")
oConn.Open myConnString
strSQL = "SELECT field1, etc FROM my_table WHERE (field = :filter_field)"
dim oFilteredList
set oFilteredList = Server.CreateObject("ADODB.Command")
oFilteredList.ActiveConnection = oConn
oFilteredList.CommandText = strSQL
oFilteredList.CommandType = adCmdText
oFilteredList.NamedParameters = True
set oParam = oFilteredList.CreateParameter("filter_field", adVarChar, adParamInput, 10, filter_value)
oFilteredList.Parameters.Append oParam
set rsResults = oFilteredList.Execute
Questo fa sì che l'oggetto Parameter errore”viene impropriamente definito. Sono state fornite informazioni incomplete o incomplete "
Qual è il metodo corretto per chiamare Oracle/PL/SQL con i parametri denominati da ADO? Ho bisogno di utilizzare i parametri denominati perché il codice SQL effettivo è un po 'più complesso e diversi parametri vengono utilizzati più volte in tutto il comando SQL.
Provare a commentare la riga con NamedParameters = True e vedere se questo aiuta. – shahkalpesh
stai usando Option Explicit e hai incluso qualche tipo di file adovbs.inc per le costanti "ad"? – Funka
Sì, ho provato entrambi con e senza la proprietà NamedParameters e sto includendo adovbs.inc. Uso sempre l'opzione esplicita – Buzzrick