Запрос на соединение Web SQL не всегда работает только на Phonegap Android

Я пытаюсь запустить следующий веб-запрос SQL в приложении Phonegap:

db.transaction( function(tx) { 
    tx.executeSql('SELECT * FROM EVENT,RESPONSE WHERE EVENT.event_id=RESPONSE.event_id AND EVENT.event_id=291 AND EVENT.persona_id=3', [], function(tx, results) { 
        console.log(results);
        window.results = results;
    }, function(err) {
        console.log(err);
    }); 
});

В Chrome, браузере Android и iOS это работает нормально, но в некоторых случаях в скомпилированном Android-приложении PhoneGap это не так, возвращая 0 строк.

Я выполнил некоторую отладку, упростив запрос и следующую работу:

SELECT * FROM EVENT WHERE event_id=291 AND persona_id=3

SELECT * FROM RESPONSE WHERE event_id=291

Кажется, что части запроса WHERE/JOIN выдают ошибку, но я не могу понять, почему это происходит только во встроенном веб-представлении Android PhoneGap и больше нигде.

Кто-нибудь знает о каких-либо различиях в веб-представлении, которые могут быть причиной этого, или сталкивался с чем-то подобным?


person Tom Maitland    schedule 20.01.2014    source источник
comment
посмотрите в этой теме stackoverflow.com/questions /18626666/   -  person mohammed momn    schedule 20.01.2014
comment
Изменил запрос на SELECT * FROM EVENT e, RESPONSE r WHERE e.event_id=r.event_id AND e.event_id=291 AND e.persona_id=3. Это по-прежнему возвращает 3 строки в Chrome, но 0 в PhoneGap.   -  person Tom Maitland    schedule 20.01.2014
comment
Вы нашли какие-либо ошибки в LOGCAT?   -  person mohammed momn    schedule 20.01.2014
comment
У меня нет настройки среды разработки Android (с использованием Build и Xcode). У меня запущен экземпляр Weinre для отладки, и через executeSQL не приходят сообщения об ошибках.   -  person Tom Maitland    schedule 20.01.2014
comment
Это не должно иметь никакого значения, но вместо этого попробуйте стандартный синтаксис соединения ANSI: SELECT * FROM EVENT e INNER JOIN RESPONSE r ON e.event_id=r.event_id WHERE e.event_id=291 AND e.persona_id=3   -  person NigelK    schedule 20.01.2014
comment
Да пробовал безуспешно :/   -  person Tom Maitland    schedule 20.01.2014


Ответы (1)


Я видел подобное поведение усечения данных раньше, но не связанное с соединениями. Насколько велика ваша база данных webSQL? Проверьте значение size вашей команды window.openDatabase(), оно может быть слишком маленьким для вашей базы данных.

window.openDatabase(name, version, display_name, size);
person scottsanders    schedule 20.01.2014