Javascript ADO 记录集打开方法不起作用.参数化查询

Javascript ADO recordset open method not working. Parametrized queries

本文关键字:不起作用 参数 查询 方法 ADO 记录 Javascript      更新时间:2023-09-26

我正在创建一个网页,并有一些javascript代码将网页中的一些信息插入MS access数据库。我正在使用 ADO 连接和记录集,但打开方法有问题。

这是我遇到问题的一段代码

var name =document.StatusReports.empname.value;
var query = "Select * From reportForm Where EmployeeName =" + name;
    alert(query);
    if(adoRS.Open(query, adoConn, 1, 3));

名称只是一个变量,它将保存文本框的值。(这有效)如果我使用警报(查询),一切都显示得很好:Select * From reportForm Where EmployeeName = kevin好像串联工作正常。但是,如果我尝试使用该查询打开连接,则会收到此错误:

SCRIPT3600: No value given for one or more required parameters. 

好像它不认识串联。

注意:它无需串联即可工作。例如,如果我硬编码一个值:

 var query = "Select * From reportForm Where EmployeeName = kevin";

但这当然不是目的。

更新:我认为问题是查询没有参数化。我记得在 Java 中这发生在我身上,但我参数化了查询,我会完成的。不确定如何使用 javascript 参数化查询

以下查询将在 Access 中生成错误,因为它尝试比较两个字段名称:"EmployeeName"和"kevin":

Select * From reportForm Where EmployeeName = kevin

以下查询不应产生错误,因为它将"EmployeeName"与字符串"kevin"进行比较:

Select * From reportForm Where EmployeeName = 'kevin'

将搜索字符串name放在引号中,如下所示:

var query = "Select * From reportForm Where EmployeeName ='" + name + "'";