2015-07-13 28 views
0

出現此錯誤的for循環:的node.js SQLITE3 - 添加行時錯誤,當我通過添加20串到我的表動態

錯誤:SQLITE_ERROR:不能在錯誤事務內啓動一個事務(本地)

下面是相關代碼:

var sqlite3 = require('sqlite3').verbose(); 
var Players_db = new sqlite3.Database('./db/Players'); 

Players_db.serialize(function() 
{ 
    Players_db.run("BEGIN TRANSACTION"); 
    Players_db.run("CREATE TABLE IF NOT EXISTS Players(string TEXT)"); 
    Players_db.run("COMMIT"); 
    console.log('Players_db init') 
}); 

// This part is a simplification, but it shouldn't make a difference. 
for (var i = 0; i < 20; i ++) 
{ 
    Players_db.run("BEGIN TRANSACTION"); 
    Players_db.run("INSERT INTO Players VALUES('"+a_string+"')"); 
    Players_db.run("COMMIT"); 
} 

還顯示出了對環成功完成(和數據被附加到分貝),但不久之後就與上述錯誤崩潰。

回答

1

試試這個

 Players_db.serialize(function() 
     { 
      Players_db.run("BEGIN TRANSACTION"); 
      for (var i = 0; i < 20; i ++) 
      { 
       Players_db.run("INSERT INTO Players VALUES('"+a_string+"')"); 
      } 
      Players_db.run("COMMIT"); 
     }) 
+0

它的工作原理,但由於應用程序的性質,我不能從同一個序列化事件中添加行。 – user2810330

+0

我想通了,我可以使用每一個新行的序列化函數。謝謝你 – user2810330

相關問題