Javascript ADO 记录集打开方法无效。参数化查询
Javascript ADO recordset open method not working. Parametrized queries
我正在创建一个网页,并有一些 javascript 代码可以将网页中的一些信息插入到 MS 访问数据库中。
我正在使用 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" 与 [=25] 的字符串 value 进行比较=]:
Select * From reportForm Where EmployeeName = 'kevin'
将搜索字符串 name
放在引号中,如下所示:
var query = "Select * From reportForm Where EmployeeName ='" + name + "'";
我正在创建一个网页,并有一些 javascript 代码可以将网页中的一些信息插入到 MS 访问数据库中。 我正在使用 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" 与 [=25] 的字符串 value 进行比较=]:
Select * From reportForm Where EmployeeName = 'kevin'
将搜索字符串 name
放在引号中,如下所示:
var query = "Select * From reportForm Where EmployeeName ='" + name + "'";