SQLite вставка запроса дает ошибку после 246 записей - PullRequest
1 голос
/ 08 августа 2009

Я пытаюсь вставить 1916 записей в базу данных sqlite на iphone, но после добавления 246 записей я получаю сообщение об ошибке

"Завершение работы приложения из-за необработанного исключения" NSInternalInconsistencyException ", причина:" Ошибка при вставке данных. "Не удалось открыть файл базы данных" ""

Есть ли какие-либо настройки относительно кэша вставок или что-то еще?

Ответы [ 2 ]

0 голосов
/ 08 августа 2009

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

0 голосов
/ 08 августа 2009

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

Также помогут некоторые дополнительные детали, такие как Query, версия sqLITE, сколько данных передается в каждом поле, структура таблицы, ограничения и т. Д. *

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