【发布时间】:2018-05-08 23:40:37
【问题描述】:
我正在使用 javascript 和 sqlite 并尝试在 AJAX 发布成功后在 SELECT 查询中运行 UPDATE 查询。 SELECT 和 AJAX 发布成功,但在 UPDATE 时,返回错误:Error: SQLITE_BUSY: database is locked
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('sqlite-database.db');
db.serialize(function(){
db.each("SELECT id_sales, id_customer, date FROM sales where syncstatus = 0", function(err, row) {
id_sales = row.id_sales;
id_customer = row.id_customer;
date = row.date;
$.ajax('http://localhost/newserver/sales/sync_sales', {
type: 'POST',
async: false,
data: { id_sales_ori: id_sales, id_customer:id_customer, date: date },
success: function (data, status, xhr) {
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('sqlite-database.db');
db.run("UPDATE sales set syncstatus = $status WHERE id_sales = $id_sales",{
$id_sales: id_sales,
$status: 1,
},function (err,rows){
if (err === null){
console.log("syncstatus update to 1");
}else{
console.log(err);
}
});
},
error: function (jqXhr, textStatus, errorMessage) {
console.log("fail sync");
stat[id_sales] = 0;
}
});
});
});
db.close();
请帮助我如何在 db.each 中正确执行 UPDATE 查询。
【问题讨论】:
标签: javascript json ajax sqlite