sql字符串中的javascript默认值

时间:2015-09-29 15:13:17

标签: javascript mysql

//我试图添加默认变量也是我的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("/ ") + "')" : "") +""}

1 个答案:

答案 0 :(得分:0)

date2是一个数组,您正在为数组指定一个字符串,从而有效地覆盖它。

相反,使用date2.push("9/29/2015");“推送”数组中的日期。

此外,当您执行var date2 = [];时,date2将成为一个对象,因此它不再是未定义的。因此,if子句永远不会成立。

检查其长度:

if (date2.length === 0){
    date2.push("9/29/2015");
}