【问题标题】:Phonegap Sqlite Error processing SQL : 6Phonegap Sqlite 错误处理 SQL:6
【发布时间】:2015-07-13 22:58:29
【问题描述】:

我是法国人,很抱歉我的英语不好,我需要一些帮助,我正在尝试将我的网络服务器上的数据库复制到我的 phonegap 应用程序中以创建一个本地数据库,所以我有这个:

function dlDatabase(){
        var db = window.openDatabase("Databases", "1.0", "Cordova Demo", 200000);
        db.transaction(createAllTables, errorCB, dlCountry);
    }


    function createAllTables(tx){
        tx.executeSql('CREATE TABLE IF NOT EXISTS Country (id integer primary key, name text, nbQuestion integer)');
        tx.executeSql('CREATE TABLE IF NOT EXISTS Question (id integer primary key, text text, CountryId integer)');
        tx.executeSql('CREATE TABLE IF NOT EXISTS Answer (id integer primary key, QuestionId integer, text text, isGood boolean)');
    }

    function insertCountry(tx, id, name, number){
        tx.executeSql("INSERT INTO Country(id, name, nbQuestion) VALUES (?,?,?)", [id, name, number]);
    }

    function dlCountry() {
        alert("dlCountry");
        $.ajax({
            type: "POST",
            url: url,     
            dataType: "json",
            data : {
                actionname : 'dlCountry'
            },
            success: function(data) {
                arrayCountry = data.arrayCountry;
                var db = window.openDatabase("Databases", "1.0", "Cordova Demo", 200000);
                db.transaction(function(tx){
                    for (var i = 0; i < arrayCountry.length; i++) {
                        alert(arrayCountry[i].id+" "+arrayCountry[i].name+" "+arrayCountry[i].number);
                        insertCountry(tx, arrayCountry[i].id, arrayCountry[i].name, arrayCountry[i].number);
                    };
                }, errorCB, dlQuestion);
            },
            error: function(data) {
                alert("error !");
            }
        });
    }

我在登录时调用了 dlDatabase 函数,这是可行的,但是在插入所有国家/地区后(在警报之后),我有一个错误代码 6:

function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}

我是SQLite的初学者,错误代码6是什么,如何解决? 谢谢您的帮助! :)

【问题讨论】:

    标签: sqlite cordova


    【解决方案1】:

    首先,将alert("Error processing SQL: "+err.code); 更改为alert("Error processing SQL: "+err.message);

    就像在 cordova/phonegap 文档中描述的那样......

    当操作一个错误发生时抛出 SQLError 对象 数据库。

    这个对象有两个属性:

    • 代码(您描述的常量之一)
    • 消息:错误说明

    这件事的详细答案可以在这里找到-> How to show useful error messages from a database error callback in Phonegap?

    正如您在该链接中看到的那样,错误代码 6 表示

    CONSTRAINT_ERR = 6

    可以在此处找到有关约束错误的信息 -> http://www.w3schools.com/sql/sql_constraints.asp 我现在要检查您的代码。就我对您的具体问题的答案而言,我将进行编辑。到目前为止,供您参考。

    【讨论】:

    • 好的,我有消息了,它是:“由于约束失败(19约束失败)无法执行语句”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2019-01-30
    相关资源
    最近更新 更多