Angularjs sqlite事务中的错误函数未返回任何错误
我正在使用下面的代码与sqlite数据库交互Angularjs sqlite事务中的错误函数未返回任何错误,angularjs,sqlite,Angularjs,Sqlite,我正在使用下面的代码与sqlite数据库交互 var defferd = $q.defer(); var db = openConn('test1','1.0.0' , 'test1' , 200000); db.transaction(insertUserInformation, errorDB, successDB); function insertUserInformation(tx) { tx.execut
var defferd = $q.defer();
var db = openConn('test1','1.0.0' , 'test1' , 200000);
db.transaction(insertUserInformation, errorDB, successDB);
function insertUserInformation(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS USERINFO (ID UNIQUE, USERNAME , FULLNAME , PROFILEPIC , ACCESS_TOKEN)');
}
function openConn(databaseName, dbVersion, dbShowName, dbSize){
return window.openDatabase(databaseName, dbVersion, dbShowName, dbSize);
}
function errorDB(tx, err) {
defferd.reject(err);
}
function successDB() {
defferd.resolve(result)
}
return defferd.promise;
运行此代码后,一切正常。但当我将查询更改为insert时,会触发errorDB函数,但不会返回任何错误,我无法确定这是什么错误
如何处理sqlite事务的错误首先需要指定主键,因此将creating table query更新为
tx.executeSql('CREATE TABLE IF NOT EXISTS USERINFO (ID INTEGER PRIMARY KEY ASC, USERNAME , FULLNAME , PROFILEPIC , ACCESS_TOKEN)');
注意:之前不要忘记放下旧桌子
什么之后
function insertUserInformation(tx) {
tx.executeSql('insert into USERINFO VALUES (null, "2", "3", "4", "5");');
}
对我来说很好
还有一件事:
errol回调(errorDB函数)应该只有一个参数
function errorDB(err) {
defferd.reject(err);
console.log(err);
}
因此,在本例中,err将是如下所示的SQLError对象:
{
code: 6
message: "could not execute statement due to a constaint failure (19 UNIQUE constraint failed: USERINFO.ID)"
}