在Classic ASP中从ADODB调用参数化Oracle查询
我目前正在开发一个与Oracle数据库交谈的经典ASP项目.我正试图找到一种方法来安全地调用Oracle PL / SQL脚本并使用ADO传递参数.当前的解决方案使用嵌入式变量手动构建SQL脚本,如下所示:
strSQL = "SELECT field1,etc FROM my_table WHERE (field = '" & filter_value & "')" 当然,这是丑陋和不安全的,并且容易被滥用. 到目前为止我所拥有的代码(来自各种非经典的基于asp的网站)看起来像这样: 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 这会导致错误“参数对象未正确定义.提供的信息不一致或不完整“ 使用ADO中的命名参数调用Oracle / PL / SQL的正确方法是什么?我需要使用命名参数,因为实际的SQL代码有点复杂,并且在整个SQL命令中多次使用不同的参数. 解决方法
你如何定义filter_value?如果它没有被声明为String或者你已经分配了一个超过10个字符的字符串(正如你在创建参数时指出的那样),那么你就会遇到问题.
另外(并且部分用于我自己的参考),OraOLEDB(即ADODB)不支持命名参数. 请参阅Oracle? Provider for OLE DB Developer’s Guide 11g Release 1 (11.1)或按照任何previous versions(8iR3,9i,9iR2,10g,10gR2)上的“命令参数”标题链接:
也就是说,在使用OraOLEDB时,这应该与您的查询无关: oFilteredList.NamedParameters = True 我已成功运行查询,正如您的示例的其余部分在Oracle 10gR2上显示的那样. 你没有显示你的连接字符串,所以我必须假设它是有效的.行为可能因选项而异,所以这就是我成功使用的内容: `"Provider=OraOLEDB.Oracle;Data Source=TNSNAMES_ENTRY;User ID=XXXX;Password=YYYY;DistribTx=0;"` (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在MVC中,何时使用<%=%>和<%%&g
- asp.net-mvc – Ajax.Actionlink在新页面中打开
- asp.net – .Net LoginControls – 用户无法在Firefox中注销
- asp.net – web-api&swagger文档
- 实体框架 – 在每个单元测试之前重新创建和重新设置LocalDb
- asp.net-mvc-3 – Facebook身份验证和奇怪的重定向行为
- ASP.NET MVC中的jQuery AJAX响应
- asp.net – 在Inproc模式下与页面只读的会话锁争用
- asp.net-web-api2 – 创建新的IHttpActionResult动作结果方
- asp.net – WCF:如何将多个服务组合到单个WSDL中
- asp.net-mvc – 如何在MVC中使用HtmlHelper获取自
- Asp.Net MVC 3 JSON模型绑定无法正常工作
- 棕色域ASP.NET应用程序的有用/现实代码覆盖目标
- asp.net – 如何绕过特定网址的“angular-in-mem
- asp.net-mvc-3 – Razor语法中的ValidateRequest
- asp.net-mvc-5 – Visual Studio 2015 MVC项目模
- 如何为Asp.Net中的所有子文件夹注册HttpHandler?
- asp.net-mvc – 如何自定义简单的成员资格提供者
- asp.net-mvc – 工作单元,存储库,注入,使用块
- ASP.NET重写自定义错误不发送内容类型头