база данных sqlite3 блокируется - PullRequest
2 голосов
/ 09 июня 2011

Я создаю приложение с помощью sqlite. Я выполняю все виды задач в базе данных Insert, Update, Delete, Select.

Для этого я каждый раз открываю базу данных, затем выполняю свой запрос, используя sqlite3_step(), и после результата использую методы sqlite3_finalize() и sqlite3_close(). Это работает хорошо в большинстве случаев. Я не понимаю, когда это происходит, но иногда моя база данных блокируется тем же процессом, которому я следую, и некоторое время он работает.

Мне нужно разблокировать базу данных, поэтому даже в любом случае моя база данных будет заблокирована, тогда я смогу разблокировать ее или, если вы можете проверить по коду, заблокирована ли моя база данных, чтобы я мог заменить свою базу данных базой данных ресурсов.

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

1 Ответ

8 голосов
/ 09 июня 2011

Открыть базу данных один раз в начале.И закройте его в конце в функции AppWillterminate.Вы только тратите время, открывая и закрывая его в каждой функции базы данных.

Что касается блокировки базы данных, она блокируется, когда какое-то приложение все еще использует ее, а другое приложение пытается получить доступ.

Это может быть ваше приложение или, возможно, sqlite.менеджер надстройки вашего Firefox.

Однажды я столкнулся с той же проблемой, и то, что я сделал, было

  1. Отключен параметр в дополнении sqlite, где он запоминает ранее открытую базу данных.

  2. Перезапустите xcode, симулятор.

  3. Сделайте копию файла sqlite (рабочий стол), удалите его из проекта и затем снова добавьте в проект с рабочего стола.

Последнее решение звучит странно, но в тот раз я был безумен.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...