//我试图添加默认变量也是我的sql字符串,所以当我的代码加载时我不会收到语法错误。出于某种原因,当我添加if语句时,它什么都不做。
{`var serversLength = Request.Form("servers").count;
var serversTemp = (serversLength) ? Request.Form("servers") : false;
var servers = [];
for (i = 1; i <= serversLength; i++) {
servers.push(serversTemp(i));
}
var options = "";
options += Request.Form("options");
%>
<%
var dateLength = Request.Form("date").count;
var dateTemp = (dateLength) ? Request.Form("date") : false;
var date= [];
for (i = 1; i <= dateLength; i++) {
date.push(dateTemp(i));
} %>
<%
var date2Length = Request.Form("date2").count;
var date2Temp = (date2Length) ? Request.Form("date2") : false;
var date2= [];
if (date2 === undefined){
date2="9/29/2015";
}
for (i = 1; i <= date2Length; i++) {
date2.push(date2Temp(i));
} %>
var SQL="SELECT LINKEDNAME, ERRNUM,CONVERT(CHAR(16),TSTAMP,21) AS TSTAMP, ERRDESC FROM MAIN.dbo.LINKEDSERVERFAILS " + ((serversLength) ? "WHERE LINKEDNAME IN ('" + servers.join("''") + "')" : "") + "AND TSTAMP BETWEEN" + ((dateLength) ? "('" + date.join("/ ") + "')" : "") + " AND " + ((date2Length) ? "('" + date2.join("/ ") + "')" : "") +""}
答案 0 :(得分:0)
date2是一个数组,您正在为数组指定一个字符串,从而有效地覆盖它。
相反,使用date2.push("9/29/2015");
“推送”数组中的日期。
此外,当您执行var date2 = [];
时,date2将成为一个对象,因此它不再是未定义的。因此,if子句永远不会成立。
检查其长度:
if (date2.length === 0){
date2.push("9/29/2015");
}