Instrukcja wstawiania SQL nie działa w Javascript

Próbuję pobrać moją bazę danych WebSQL do popluate przy użyciu tablicy JSON (wywoływany jest obiektmyJSONObject, wywoływana jest tablicacostcodes).

Funkcja działa po kliknięciu, baza danych pomyślnie tworzy, ale dane nie są wstawiane do bazy danych. Nawet nie rzuca i nie popełnia błędu, po prostu nic nie robi.

Początkowo sądziłem, że dane nie są poprawnie zbierane, ale nie wiem dokładnie, gdzie / jak uciec. Więc jestem zakłopotany.

<code>    localDB = null;

    function initDB()
    {
        if (localDB==null)
        {
            var shortName = 'Costcode';
            var version = '1.0';
            var displayName = 'Costcode';
            var maxSize = 217802; // in bytes
            localDB = window.openDatabase(shortName, version, displayName, maxSize);
        }

    }
            function buildTable()
    {
       var sQuery = 'CREATE TABLE IF NOT EXISTS Costcode ('+
                    'id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,' +
                    'cost_code_no VARCHAR NULL,' +
                    'row_unique_no VARCHAR NULL,' +
                    'cost_class_no VARCHAR NULL,' +
                    'Table_Version VARCHAR DEFAULT "1.0");';
        try
        {
            initDB();
            localDB.transaction(function(transaction)
            {
                transaction.executeSql(sQuery, []);
                console.log('sucess');
            });
        }
        catch (e)
        {
           alert("Error: Unable to create table 'x" + "' " + e + ".");
           return;
       }    
    }


 function exeSQLFast()
    {

                initDB();
                localDB.transaction(function(transaction)
                {
                    for (var x = 0; x <myJSONObject.costcodes.length; x++)
                    {

                        var costcodeno = myJSONObject.costcodes[x].cost_code_no;
                        var rowuniqueid = myJSONObject.costcodes[x].row_unique_id;
                        var costclassno = myJSONObject.costcodes[x].cost_class_no;
                        console.log(costcodeno);
                        console.log(rowuniqueid); 
                        console.log(costclassno);
                    transaction.executeSql('INSERT INTO Costcode (cost_code_no, row_unique_id, cost_class_no) VALUES (? , ? , ?)',
                     [costcodeno,
                     rowuniqueid,
                     costclassno]
                     , function(transaction, results)
                        {
                            console.log(costcodeno);
                            console.log('hooray');
                        }

                    )};
                    }
            )}

</script>
</head>

<body onLoad="buildTable();">
<input type="button" onClick="exeSQLFast();" value='button'>
</body>
</html>
</code>

Dziennik konsoli pokazuje, że wszystkie zmienne są poprawnie zdefiniowane, ale nie działa instrukcja insert. Jakieś pomysły?

Oto przykładmyJSONObject.costcodes[2]

<code>cost_class_no: "    3"
cost_code_no: "      1000"
row_unique_id: 335
</code>

To wygląda na problem, nie ...

questionAnswers(1)

yourAnswerToTheQuestion