phonegap sqlite 数据库:语句回调引发异常
phonegap sqllite Database: the statement callback raised exception
我遇到了这个奇怪的问题"the statement callback raised an exception or error did not return false"
这只是一个简单的数据库示例。
我的代码在 github 此处:
https://github.com/prantikv/phonegapDBdemo
请阅读代码中的注释,它解释了一切。
我怀疑问题出在数据库的 ajax 回调中。
如果这是真的,那么我如何让 ajax 回调等待 sql-lite/phonegap 中的数据?
function formSent(){//fired when form is submited
alert("formSent called");
db.transaction(queryDB, errorTrans);
return false;
}
function errorTrans(err){ //error for formsent
alert("formsent "+err.message+"|"+err.code);//error is generated here
}
function createSuccess(){//just alerts on success
alert("DB Created");
}
function populateDB(tx) {//transaction obj is passed. Table Created not populated
alert("populateDB called");
tx.executeSql('CREATE TABLE IF NOT EXISTS myDB (id , data)');
}
function onDeviceReady(){
db= window.openDatabase("Database", "1.0", "Display Name", 4*1024*1024);
db.transaction(populateDB, createERR, createSuccess);
}
function createERR(err){//error for create
alert("Create "+err.message);
}
AM 我应该为每个数据库添加 return false callback.if 是的那么 return 什么时候编辑哪个布尔值?
phonegap 文档示例中没有它 http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database
错误消息通常不是因为SQL,而是关于执行回调时发生的异常。所以你很可能发生了 JS 错误。
我找到了
tx.executeSql('INSERT INTO myDB VALUES (?,?)', [username,email], insertSuccess, errorInsert);
第 47 行 index.js。它在 VALUES 之前缺少 (id,data)。这会导致下一个 SQL 调用
tx.executeSql('SELECT * FROM myDB', [], querySuccess, errorSelect);
失败。修复该问题,然后重试。
我遇到了这个奇怪的问题"the statement callback raised an exception or error did not return false"
这只是一个简单的数据库示例。 我的代码在 github 此处: https://github.com/prantikv/phonegapDBdemo
请阅读代码中的注释,它解释了一切。
我怀疑问题出在数据库的 ajax 回调中。 如果这是真的,那么我如何让 ajax 回调等待 sql-lite/phonegap 中的数据?
function formSent(){//fired when form is submited
alert("formSent called");
db.transaction(queryDB, errorTrans);
return false;
}
function errorTrans(err){ //error for formsent
alert("formsent "+err.message+"|"+err.code);//error is generated here
}
function createSuccess(){//just alerts on success
alert("DB Created");
}
function populateDB(tx) {//transaction obj is passed. Table Created not populated
alert("populateDB called");
tx.executeSql('CREATE TABLE IF NOT EXISTS myDB (id , data)');
}
function onDeviceReady(){
db= window.openDatabase("Database", "1.0", "Display Name", 4*1024*1024);
db.transaction(populateDB, createERR, createSuccess);
}
function createERR(err){//error for create
alert("Create "+err.message);
}
AM 我应该为每个数据库添加 return false callback.if 是的那么 return 什么时候编辑哪个布尔值?
phonegap 文档示例中没有它 http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database
错误消息通常不是因为SQL,而是关于执行回调时发生的异常。所以你很可能发生了 JS 错误。
我找到了
tx.executeSql('INSERT INTO myDB VALUES (?,?)', [username,email], insertSuccess, errorInsert);
第 47 行 index.js。它在 VALUES 之前缺少 (id,data)。这会导致下一个 SQL 调用
tx.executeSql('SELECT * FROM myDB', [], querySuccess, errorSelect);
失败。修复该问题,然后重试。