2014-01-30 171 views
0

我開始使用SQLite和Javascript的PhoneGap的aplication工作執行語句,這裏的事情是,我使用的是Web服務和添加行到本地sqlite數據庫。在這種情況下,我想要插入的項目的長度是1016,但它只插入少於100,並且「由於約束失敗而無法執行語句(19個約束失敗)」一直顯示。SQLite的 - 無法由於約束失敗(19約束失敗)

這是部分代碼:

function onSuccessCustomers(data){ 
    alert("CLIENTES: " + data.length); 
    $.each(data, function(i, item) { 
     database.executeQuery("INSERT INTO cliente1 (codcli) VALUES ('" + item.CODCLI + "')");       
    }); 
} 

這裏警報顯示「CLIENTES:1016」和多數民衆贊成正確!在foreach推移和1016次了。但是當我檢查表時,只有幾行已經插入。

這裏的功能的executeQuery:

function executeQuery (query) { 
     var deferred = $.Deferred(); 

     getInstance().transaction(function(tx) { 
      tx.executeSql(query, [], function(tx, r) { 
       deferred.resolve(r); 
      }, function(tx, e) { 
       alert(e.message); 
       deferred.fail(e); 
      }); 
     }); 
     return deferred.promise(); 
    }; 

下面是當消息出現。有任何想法嗎??

+0

什麼約束在該表中定義? –

回答

0

儘管這是一個老問題,我面對類似的情況,我所做的,解決它是刪除表,並重新創建它。 實際情況是,我試圖插入後,我編輯的列到一個新的,不存在於表中的列..