База данных Android PhoneGap не работает - PullRequest
1 голос
/ 02 сентября 2011

У меня проблемы с примером базы данных из PhoneGap. http://docs.phonegap.com/phonegap_storage_storage.md.html#openDatabase

Проблема в том, что когда я запускаю пример для openDatabase и заполняет его, он извлекает мне оповещение об успехе, но когда я пытаюсь сделать выбранное, выдает ошибку:

"Error processing SQL:0"

Есть ли какие-либо проблемы с базами данных и телефоном Android, которых я не знаю? Я пробовал также в эмуляторе Android, и я продолжаю получать ту же проблему.

Вы можете мне помочь?

Вот код JavaScript:

Теперь у меня есть следующий код:

   document.addEventListener("deviceready", onDeviceReady, false);

function populateDB(tx) {
    tx.executeSql('DROP TABLE IF EXISTS DEMO');
    tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}

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

function successCB() {
    alert("success!");
}

function queryDB(tx) {
    tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}

function querySuccess(tx, results) {
    alert("i'm here =)");
}

function querySuccess(tx, results) {
    // this will be empty since no rows were inserted.
    console.log("Insert ID = " + results.insertId);
    // this will be 0 since it is a select statement
    console.log("Rows Affected = " + results.rowAffected);
    // the number of rows returned by the select statement
    console.log("Insert ID = " + results.rows.length);
}

function onDeviceReady() {
    $(document).ready(function() {
        $('#submit').click(function() {
            alert('clicked');
            var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
            db.transaction(populateDB, errorCB, successCB);
            db.transaction(queryDB, errorCB);
        })
    });
}

И все же выдается предупреждение Succes, когда я выполняю транзакцию заполнения, но в предупреждении о запросе DB есть ошибка обработки SQL: 0.

Заранее спасибо,
Elkas

PS: я также использую jQuery Mobile

Ответы [ 3 ]

0 голосов
/ 12 сентября 2011

Я только что сделал это. Кажется, это была проблема оперативной системы. Я сделал понижение до операционной системы, и теперь система работает отлично.

Кстати, у меня была OS X Lion, а теперь OS X Snow Leopard. Возможно, проблема была не в ОС, но исправлена. Когда выйдет 10.7.2, я снова обновлюсь и дам ответ, если он работает.

С уважением,
Elkas

0 голосов
/ 02 ноября 2011

Я забыл обновить этот вопрос.С Lion 10.7.2 он работает отлично.

С уважением,
Elkas

0 голосов
/ 02 сентября 2011

Вам нужно проверить, готов ли телефонный разрыв:

document.addEventListener ("deviceready", onDeviceReady, false);

...