我有以下 JScript 代码:
var conn = new ActiveXObject ("ADODB.Connection");
conn.Open("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=blah_blah_blah;User=foo;Password=bar;");
var cmd = new ActiveXObject("ADODB.Command");
cmd.ActiveConnection = conn;
var strSQL = "SELECT id FROM tbl_info WHERE title LIKE :search ORDER BY id";
var search = "test";
try{
cmd.CommandText = strSQL;
var param = cmd.CreateParameter(':search', 200, 1, 100, search);
cmd.Parameters.Append(param);
var rs = cmd.Execute();
}
catch (ex) {
Application.Alert("Error retrieving id information from database.");
}
我已经验证(通过打印它们)Connection 对象设置为 Command 的 ActiveConnection,参数对象具有正确的值,并且 Command 对象具有正确的 SQL 查询作为其 CommandText。我还在 try 块中的每一行之后插入了一条警告语句,以查看错误发生的位置 - 在 cmd.Parameters.Append 之后很好,但是在运行 Execute 语句时会引发异常。
我试过显示实际的异常,但它只是一个通用的“对象错误”消息。
当我直接通过 Connection 对象执行 SQL 查询(不带参数)时,查询执行良好并返回正确的结果集,但是当我对 Command 对象使用参数化查询时似乎失败了。
据我所知,Command 和 Connection 对象的所有设置和属性都是正确的,但无论出于何种原因,它都会引发异常。
对此的任何帮助将不胜感激。