我已经为SQLite问题苦苦挣扎了一段时间,但是我相信我找到了一个缺少一个重要细节的解决方案。这是一些伪代码:
var db = someDatabase;
function wrapperForSQLiteFunction(data){
db.execute('BEGIN');
SQLiteFunction(data);
}
function SQLiteFunction(data){
db.execute('DO STUFF');
db.execute('COMMIT');
var data2 = someOtherQuery;
wrapperForSQLiteFunction(data2);
}
我想做的是仅在没有事务处于活动状态时才执行db.execute('BEGIN')
。否则,在某些情况下,我会收到cannot start a transaction within a transaction
错误,然后数据将开始疯狂地复制到数据库中。
不幸的是,我似乎无法在SQLite文档中找到任何有关确定SQLite事务是否针对Javascript处于活动状态的信息。所以,我决定在这里询问。谢谢!