我正在开发一个phonegap应用程序,它使用datajs从OData获取数据并将其保存到sqlite。 datajs工作正常,但是当我尝试将数据保存到sqlite时,我收到错误“E / Web Console(11533):未捕获错误:INVALID_STATE_ERR:DOM异常11在文件:/// android_asset / www / js / core /Sincronizacion.js:19"
这是代码:
function SincronizarClientes() // This function runs after a button click
{
var db = window.openDatabase("TestDb", "1.0", "TestDb - 1", 2000000);
db.transaction(ActualizarClientes, FalloSincronizacion, OkSincronizacion);
}
function ActualizarClientes(tx)
{
OData.read("http://192.168.0.4:30003/TeyunaServices.svc/Clientes?$filter=EQUIPO eq 'T1' and startswith(NOM_UCLIENTE, 'MIGUEL') eq true",
function (data, request) {
var html = "", sql = "";
for (var i = 0; i < data.results.length; i++) {
html += "<div>" + data.results[i].NOM_UCLIENTE + "</div>";
sql = "INSERT OR REPLACE INTO Clientes (Cod_UCliente, Nom_UCliente, Fecha_Actualizacion) VALUES ('" + data.results[i].COD_UCLIENTE +
"','" + data.results[i].NOM_UCLIENTE + "', datetime())";
//sql = "INSERT OR REPLACE INTO Clientes (Cod_UCliente, Nom_UCliente, Fecha_Actualizacion) VALUES ('00012125', 'PEDRO PEREZ PINTO', datetime())";
tx.executeSql(sql); //This is line 19
alert(sql);
}
document.getElementById("mainContent").innerHTML = sql;
alert("Los clientes se actualizaron correctamente!");
}, function(err) {
alert("Error occurred " + err.message);
}
);
}
// Transaction error callback
//
function FalloSincronizacion(tx, err) {
alert("Error actualizando los clientes: " + err);
}
// Transaction success callback
//
function OkSincronizacion() {
}
答案 0 :(得分:1)
INVALID_STATE_ERR
不是SQLite错误。
我猜你的OData回调函数在SincronizarClientes()
返回后异步运行,因此事务tx
已经关闭。
改为在回调函数中调用db.transaction()
。