'da ADODB'den parametrelenmiş bir Oracle sorgusunu çağırın. Şu anda bir Oracle veritabanını konuşurken klasik bir ASP projesi üzerinde çalışıyorum. Oracle PL/SQL komut dosyasını güvenli bir şekilde aramak ve parametreleri ADO ile iletmek için bir yol bulmaya çalışıyorum. Şu anda çözüm böyle gömülü değişkenlerle elle SQL komut dosyası oluşturur:Klasik ASP
strSQL = "SELECT field1, etc FROM my_table WHERE (field = '" & filter_value & "')"
Bu, elbette, çirkin ve güvensiz ve istismara açıktır.
şimdiye kadar (çeşitli olmayan klasik asp tabanlı web sitelerinden purloined) sahip kod şöyle görünür:
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
Bu hata “Parametre nesnesi hatalı tanımlanır neden olur. Tutarsız veya eksik bilgi verildi ”
ADO'dan adlandırılmış parametrelerle Oracle/PL/SQL'i doğru arama yöntemi nedir? Adlandırılmış SQL kodu biraz daha karmaşık olduğundan ve SQL komutu boyunca farklı parametreler birden çok kez kullanıldığı için adlandırılmış parametreleri kullanmam gerekiyor.
NamedParameters = Doğru çizgiyi yorum deneyin ve görmek eğer yardımcı olur. – shahkalpesh
, Option Explicit kullanıyor ve "ad" sabitleriniz için bir çeşit adovbs.inc dosyasını eklediniz mi? – Funka
Evet, hem NamedParameters özelliği ile hem de olmadan denedim ve adovbs.inc dahil ediyorum. Ben her zaman seçeneği açık kullanırım – Buzzrick