基本Javascript SQL插入函数错误

时间:2016-03-13 21:28:38

标签: javascript sql sqlite

我正在将我的大问题分解成几个可以解决的问题。 我正在练习Javascript / SQL交互 - 并且在第三个障碍时失败,正在插入数据:

var databaseOptions = {
    fileName: "sqlite_WAtest",
    version: "1.0",
    displayName: "SQLite WA Test",
    maxSize: 1024
}; // End databaseOptions



var database = openDatabase(
    databaseOptions.fileName,
    databaseOptions.version,
    databaseOptions.displayName,
    databaseOptions.maxSize
); // End database



database.transaction(
    function( transaction ){

        // Create our table if it doesn't exist
        transaction.executeSql(
            "CREATE TABLE IF NOT EXISTS WORKOUTS (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, WOdate, WOtype);");

    },function(){
        alert('error Creating!');
    },function(){
        alert('success Creating');
    }
); // end database.transaction



// Try and insert dummy info into table
database.transaction(
    function( transaction ){

        // Insert the data
        transaction.executeSql('INSERT INTO WORKOUTS (WOdate, WOtype) VALUES ("Test 1","Test 2")');

    },function(){
        alert('error inserting!');
    },function(){
        alert('success inserting');
    }
); // end database.transaction

当我加载此页面时,警报会显示“成功创建!” - 好消息。

然而,我接着“插入错误”=不是那么好消息。

错误是表WORKOUTS中没有名为WOdate的列。

我已经重写了几次INSERT代码,但我无法按照我的预期工作。我正在Safari Storage窗口中跟踪表格,没有数据进入表格。

任何人都可以对此有所了解吗?

编辑:问题是我已经有一张没有正确列的表。为了我的实验,我添加了这个代码,使代码工作:

   // Delete the table before running - because I'm testing
    // This is needed
    //
    database.transaction(
        function( transaction ){

            // Drop table
            transaction.executeSql(
                "DROP TABLE WORKOUTS");

        },function(err){
            alert('error Dropping: ' + err.code + '; Message: ' + err.message);
        },function(){
            alert('success Dropping');
        }
    ); // end database.transaction

这里有两个经验教训:   1)错误回调处理 - 使用.code和.message属性并标记这些属性。帮助缩小问题范围。   2)在测试/构建时要小心现有数据

0 个答案:

没有答案