Я создал iPhone Web App с jQuery & jQTouch, который использует локальную базу данных SQLite браузера Mobile Safari в iPhone.
Приложение работало отлично, всего несколько дней назад. Внезапно я получаю следующее сообщение об ошибке при попытке инициализации базы данных:
TypeError: Result of expression 'db' [undefined] is not an object.
Эта ошибка возникает при попытке выполнить следующий код:
function openDB() {
db = openDatabase(dbName, '1.0', dbName);
db.transaction(
function(tx) {
tx.executeSql(
'CREATE TABLE IF NOT EXISTS energy_days ' +
' ... (omitted) ... ;',
[],
nullDataHandler,
function(tx, error){
alert('Error (CREATE TABLE): '+error.message+' (Code '+error.code+')');
return true;
}
);
},
transactionErrorHandler,
nullDataHandler
);
}
Конечно, переменная db
определена глобально.
Теперь этот сегмент кода работал. Может быть, это как-то связано с последним обновлением iOS 4.2? С этим обновлением поведение всей базы данных стало немного странным (например, они больше не видны в настройках, пока вы не перезапустите все устройство).
Кто-нибудь знает, как это исправить? Есть ли альтернативный способ инициализации объекта базы данных или я упускаю что-то очевидное?
Спасибо за все ответы, они искренне ценятся!
Roland