JavaScript 使用具有多个参数的记录集查询 MS Access 数据库的函数
JavaScript function to query a MS Access DB using Recordsets with multiple parameters
我有一个前端 HTML 页面正在查询 MS Access 数据库。
HTML:
<input class="textbox" id="searchValue" maxlength="100" name="KeywordSearch" onclick="this.value='';" size="50" type="text" value="Enter Your Keyword Here" />
<input class="textbox" id="ForCLNo" name="CLNum" type="text" onclick="this.value='';" size="25" type="text" value="CL Number"/>
<input class="button" name="Search" onclick="searchEngineSearch();" type="button" value="Search" /></p>
要执行此查询:
SELECT * FROM MasterTable where CLNo = test1 AND Query = test2;
对于查询,SELECT * FROM MasterTable where Query LIKE test2
,我创建了如下 ADODB 对象:
var adVarWChar = 202;
var adParamInput = 1;
var pad = "C:\Users\Rik\Desktop\Project\MyTable.accdb";
var cn = new ActiveXObject("ADODB.Connection");
var strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pad;
cn.Open(strConn);
var cm = new ActiveXObject("ADODB.Command");
cm.ActiveConnection = cn;
cm.CommandText = "SELECT * FROM MasterTable where Query LIKE test2";
cm.Parameters.Append(cm.CreateParameter(
"test2",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
var rs = cm.Execute();
得到正确的结果
不确定如何重写 cm.Parameters.Append(cm.CreateParameter()) 函数以在 SQL 查询 [SELECT * FROM MasterTable where CLNo = test1 AND Query = test2;
] 中合并多个 WHERE 条件。
请帮忙:)
您已经在 Parameters 集合中创建了一个参数...您只需要再创建一个:
cm.CommandText = "SELECT * FROM MasterTable where Query LIKE test1 OR Query LIKE Test2";
cm.Parameters.Append(cm.CreateParameter(
"test1",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
cm.Parameters.Append(cm.CreateParameter(
"test2",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
var rs = cm.Execute();
cm.Parameters
是一个集合,这意味着它能够容纳任何合理数量的项目类型。对于上面的每个参数代码,您将一个新创建的参数附加到集合中。然后使用整个集合来解析 SQL 语句。
我有一个前端 HTML 页面正在查询 MS Access 数据库。
HTML:
<input class="textbox" id="searchValue" maxlength="100" name="KeywordSearch" onclick="this.value='';" size="50" type="text" value="Enter Your Keyword Here" />
<input class="textbox" id="ForCLNo" name="CLNum" type="text" onclick="this.value='';" size="25" type="text" value="CL Number"/>
<input class="button" name="Search" onclick="searchEngineSearch();" type="button" value="Search" /></p>
要执行此查询:
SELECT * FROM MasterTable where CLNo = test1 AND Query = test2;
对于查询,SELECT * FROM MasterTable where Query LIKE test2
,我创建了如下 ADODB 对象:
var adVarWChar = 202;
var adParamInput = 1;
var pad = "C:\Users\Rik\Desktop\Project\MyTable.accdb";
var cn = new ActiveXObject("ADODB.Connection");
var strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pad;
cn.Open(strConn);
var cm = new ActiveXObject("ADODB.Command");
cm.ActiveConnection = cn;
cm.CommandText = "SELECT * FROM MasterTable where Query LIKE test2";
cm.Parameters.Append(cm.CreateParameter(
"test2",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
var rs = cm.Execute();
得到正确的结果
不确定如何重写 cm.Parameters.Append(cm.CreateParameter()) 函数以在 SQL 查询 [SELECT * FROM MasterTable where CLNo = test1 AND Query = test2;
] 中合并多个 WHERE 条件。
请帮忙:)
您已经在 Parameters 集合中创建了一个参数...您只需要再创建一个:
cm.CommandText = "SELECT * FROM MasterTable where Query LIKE test1 OR Query LIKE Test2";
cm.Parameters.Append(cm.CreateParameter(
"test1",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
cm.Parameters.Append(cm.CreateParameter(
"test2",
adVarWChar,
adParamInput,
255,
"%" + document.getElementById("searchValue").value + "%"));
var rs = cm.Execute();
cm.Parameters
是一个集合,这意味着它能够容纳任何合理数量的项目类型。对于上面的每个参数代码,您将一个新创建的参数附加到集合中。然后使用整个集合来解析 SQL 语句。