Declaração de inserção SQL não funciona em Javascript

Eu estou tentando obter o meu banco de dados WebSQL para popluate usando uma matriz JSON (objeto é chamadomyJSONObject, array é chamadocostcodes).

A função é executada no clique, o banco de dados é criado com sucesso, mas os dados não são inseridos no banco de dados. Ele nem joga nem erra, simplesmente não faz nada.

Meu pensamento inicial foi que os dados não escaparam corretamente, mas não sei exatamente onde / como escapar dele. Então estou perplexo

<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>

O log do console mostra que as variáveis ​​estão sendo definidas corretamente, mas não está executando a instrução insert. Alguma ideia?

Aqui está um exemplo demyJSONObject.costcodes[2]

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

Isso parece um problema, não é?

questionAnswers(1)

yourAnswerToTheQuestion