【发布时间】:2015-01-26 02:19:20
【问题描述】:
所以情况就是这样。我尝试使用一种快速的方法从我的数据库中获取信息并将其放入表中。显然,如果我从以下选择中询问太多信息,它将无法正常工作。
<%
var myConn, myRec, refCo, myCmd;
refCo = Request.querystring("refC");
Response.Write(refCo);
myConn = new ActiveXObject("ADODB.Connection");
myRec = new ActiveXObject("ADODB.Recordset");
myCmd = new ActiveXObject("ADODB.Command");
myConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/inetpub/wwwroot/unsite/database/world2003.mdb;");
/* myCmd.ActiveConnection = myConn;
myCmd.CommandText = "SELECT NameCountry, Capital, Language, Area, Population, Descripton FROM COUNTRIES WHERE NumCountry = " + refCo";
myCmd.Execute(); */
myRec.Open("SELECT NameCountry, Capital, Language, Area, Population, Descripton FROM COUNTRIES WHERE NumCountry = " + refCo,myConn);%>
看到 myRec.Open 了吗?它不允许我通过资本。它只是不会。我认为这可能太多了,并且使用更长的形式,即 ADODB 命令。假设我取下 cmets 并使用 myCmd,它根本不起作用。谁能帮帮我?
【问题讨论】:
-
如果您首先要不安全地传递参数,为什么还要使用
ADODB.Command?使用 Command 对象的全部意义在于生成参数化查询,以保护您的应用程序免受 SQL 注入攻击。
标签: asp-classic adodb jscript activexobject