2015-09-29 15 views
1

//我也想添加默認變量我的sql字符串,所以我不會在我的代碼加載時出現語法錯誤。由於某些原因,當我添加if語句時,它什麼都不做。在Sql字符串中的JavaScript默認值

{`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

你能也添加您收到錯誤消息? – jahller

+0

關鍵字'AND'的語法不正確。 – Lcwalker2

回答

0

date2的是一個數組,你分配一個字符串,您的陣列,有效地覆蓋它。

而是用date2.push("9/29/2015");「推」陣列中的日期。

此外,當您執行var date2 = [];時,date2成爲對象,因此它不再被定義。因此,if子句永遠不會是真的。

檢查它的長度,而不是:

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