में एडीओडीबी से पैरामीटरयुक्त ओरेकल क्वेरी को कॉल करें मैं वर्तमान में ओरेकल डेटाबेस से बात कर रहे क्लासिक एएसपी प्रोजेक्ट पर काम कर रहा हूं। मैं ओरेकल पीएल/एसक्यूएल स्क्रिप्ट को सुरक्षित रूप से कॉल करने और एडीओ के साथ पैरामीटर पास करने का एक तरीका ढूंढने की कोशिश कर रहा हूं। वर्तमान में समाधान इस तरह एम्बेडेड चर के साथ हाथ से SQL स्क्रिप्ट बनाता है:क्लासिक एएसपी
strSQL = "SELECT field1, etc FROM my_table WHERE (field = '" & filter_value & "')"
यह, ज़ाहिर है, बदसूरत और असुरक्षित और यौन शोषण से खुला है।
कोड मैं अब तक (विभिन्न गैर क्लासिक एएसपी आधारित वेब साइटों से purloined) है कि इस तरह दिखता है:
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
इस कारण त्रुटि "पैरामीटर वस्तु को अनुचित तरीके से परिभाषित किया गया है। असंगत या अपूर्ण जानकारी प्रदान की गई "
एडीओ से नामित पैरामीटर के साथ ओरेकल/पीएल/एसक्यूएल को कॉल करने का सही तरीका क्या है? मुझे नामित पैरामीटर का उपयोग करने की आवश्यकता है क्योंकि वास्तविक एसक्यूएल कोड कुछ और जटिल है, और विभिन्न पैरामीटर SQL कमांड में कई बार उपयोग किए जाते हैं।
नामांकित पैरामीटर = ट्रू के साथ लाइन पर टिप्पणी करने का प्रयास करें और देखें कि क्या इससे मदद मिलती है। – shahkalpesh
क्या आप विकल्प स्पष्टीकरण का उपयोग कर रहे हैं और क्या आपने अपने "विज्ञापन" स्थिरांक के लिए किसी प्रकार की adovbs.inc फ़ाइल शामिल की है? – Funka
हां, मैंने नामांकित पैरामीटर संपत्ति के साथ और बिना दोनों की कोशिश की है, और मैं adovbs.inc सहित हूं। मैं हमेशा विकल्प का उपयोग स्पष्ट करता हूं – Buzzrick