2015-08-03 1 views
0

Когда я использую обычный запрос (который работает в браузере) в Android, используя этот код:Не могу запросить WebSQL в Android

var sql = 'SELECT DPHID FROM DPH'; 
var sqlParam = []; 

db.transaction(
    function queryDB(tx) { 
     tx.executeSql(sql, sqlParam, 
      function querySuccess(tx, results) { 
       console.log(JSON.stringify(results.rows)); 
       ... call other function ... 
      } 
     , error); 
    } 
, error); 

function error(tx, err) { 
    console.log("Error"); 
    console.log(JSON.stringify(tx)); 
    console.log(JSON.stringify(err)); 
} 

Это только печатает это для успеха (без данных результата):

{"length":5} at null:339

но он печатает внешнюю ошибку:

{"code":0,"message":"the statement callback raised an exception or statement error callback did not return false"} at null:615

Что может быть не так?

+0

С какой версией Android вы это проверяете? – QuickFix

+0

Пробовал в эмуляторе 4.1.1 и моем телефоне 4.1.2 – Rendy

ответ

0

И, наконец, РЕШАЕТ!

Я пытаюсь объяснить, что я могу узнать:

ошибка происходит потому, что я использую в другой функции в results, которую я называю так:

results.rows[0] 

Это работает безупречно в PC-браузере, но не в Android-приложении для мобильных устройств. Мне нужно использовать это:

results.rows.item(0) 

получить объект из results.

Что я до сих пор не понимаю, когда печатаю results.rows, он печатает только {"length":5} at null:339, что заставило меня подозревать, что в моем коде есть что-то не так (что я протестировал в браузере ПК без проблем).

Смежные вопросы