HTML5 говорит, что значения не определены - PullRequest
2 голосов
/ 15 января 2011

Это расширение Chrome и, скажем, у меня есть этот код:

var DB = openDatabase('CMPDB', '1.0', 'Database for CMP', 4 * 1024 * 1024); 
LoadFromDB();   

function LoadFromDB() {

    DB.transaction( function(tx)
    {           
        tx.executeSql('CREATE TABLE IF NOT EXISTS table(X, Y, Z UNIQUE)');

        tx.executeSql('SELECT * FROM table', [], function (tx, results) {
            var len = results.rows.length;
            for (i = 0; i < len; i++) {                 
                alert(results.rows.item(i).X.text);
                alert(results.rows.item(i).Y.text);
                alert(results.rows.item(i).Z.text);                         

            }
        });
    });
}

Почему все оповещения возвращаются как неопределенные, если предположить, что таблица была создана ранее и что инструменты разработчика в Chrome сообщают, что значения находятся в таблице?

1 Ответ

0 голосов
/ 15 июня 2011

Я думаю, что ваш SELECT оператор может быть вызван до того, как таблица будет завершена. Вы пытались переместить запрос SELECT в функцию обратного вызова, чтобы он вызывался после запуска вашего CREATE TABLE SQL. Что-то вроде:

tx.executeSql('CREATE TABLE IF NOT EXISTS table(X, Y, Z UNIQUE)', function(tx) {
    tx.executeSql('SELECT * FROM table', [], function (tx, results) {
        var len = results.rows.length;
        for (i = 0; i < len; i++) {                 
            console.log(results.rows.item(i).X.text);
            console.log(results.rows.item(i).Y.text);
            console.log(results.rows.item(i).Z.text);                         
        }
    });            
});
...