У меня было много проблем, чтобы заставить мое приложение работать с использованием базы данных sqlite.В Ripple все прекрасно работает (я полагаю, это потому, что он использует реализацию sqlite в Chrome).Однако после запуска приложения на симуляторе (Curve 9300, OS 6) начинаются проблемы.Я понял, где приложение может запускаться, создавать базу данных и вставлять строки, поэтому я знаю, что с моими фактическими запросами все в порядке.
У моего приложения есть файл javascript, который содержит оболочки для работы с базой данных.Этот файл javascript поставляется как слушателем, так и страницей, которая является ядром приложения.Проблема заключается в следующем:
- Установите приложение.Слушатель начинает работать.
- Отправка текстового сообщения из одного симулятора в другой.Сообщение успешно сохранено (я могу убедиться в этом, потому что количество индикаторов моего баннера увеличивается, а число основано на запросе)
- Продолжайте отправлять тексты, и индикатор баннера будет увеличиваться.
- Откройте приложение и прочитайте все сообщения.На этом этапе файл javascript загружается дважды, поэтому у меня есть два объекта db, указывающих на одну и ту же базу данных.
- Закройте приложение (слушатель все еще работает)
- При получении следующего текстового сообщенияИсключение времени выполнения, без дополнительной информации.
Я посмотрел на трассировку стека, и она просто говорит, что исключение имело место при обратном вызове слушателя смс.Это очевидно, поскольку именно здесь происходят запросы.У кого-нибудь есть идеи, почему открытие второго соединения с БД вызывает исключение?Насколько я понимаю, БД блокируется только во время транзакции.Определенно не выполняется никаких транзакций, кроме той, которая пытается вставить новую строку.Хотя я новичок в javascript, я совершенно уверен, что никакие переменные не передаются, поскольку файл javascript загружается на двух разных страницах.Любые идеи будут с благодарностью.