2014-04-21 44 views
0

我在iOS上調用SQLite的executeSql語句。我正在使用成功的[和錯誤]回調方法,以便我可以確認受影響的記錄數。爲什麼rowsAffected不返回整數

當它回來時,它已經正確定義了3個變量,但是當我嘗試對rowsAffected執行「if」檢查時,它不工作,因爲它認爲它是一個對象。

這是一個角度的服務...

這裏是我的代碼:

$DBService.ExecuteQuery(script, params, 
     function (insertId, rowsAffected, rows) { 
      window.logger.logIt("rowsAffected: " + rowsAffected.toString()); 

      if (rowsAffected !== 1) { 
       deferred.reject("Failed to update record. Query did not return 1 record affected."); 
      } else { 
       deferred.resolve(); 
      } 
     }, 
     function (error) { 
      deferred.reject("Failed to update record. " + error.message); 
     } 
    ); 

當我在調試器破裂,將鼠標懸停在的RowsAffected變量,它會顯示它,就好像它是一個屬性一個類,它顯示:insertId,rowsAffected = 1和行。這些是成功回調中的3個參數。爲什麼當我只是在行上盤旋時顯示全部3影響?另外,當我寫入我的控制檯窗口(window.logger.logIt())時,它將它顯示爲[object object]。同樣,這告訴我它認爲它是一個類,而不是類的屬性(或者只是我的類中的一個變量)。

有人能告訴我這裏發生了什麼事嗎?

+0

順便說一句,我被騙了,改變了我的代碼,也就是說,當(rowsAffected.rowsAffected == 1!)和這樣的作品,但它並不能解釋爲什麼。 – ganders

+0

什麼讓你覺得它不是一個對象呢? – gkalpak

+0

僅僅通過說明文檔說它返回3個參數,insertId,rowsAffected和行。前兩個是整數,第三個是受影響的行的數組。 http://www.w3.org/TR/webdatabase/ – ganders

回答

1

作爲文檔清楚闡明:

的的ExecuteSQL()方法調用它的回調與SQLResultSet對象作爲參數。

所以傳遞給回調的參數是對象具有三個指定的屬性。 始終信任DevTools。

因此,它應該更像:

​​
相關問題