2016-07-15 2 views
-2

Я работаю с sqlite в приложении iOS. Я успешно создал экраны и таблицы регистрации и регистрации. Теперь я создаю другую таблицу для сохранения данных. Таблица была создана, но когда я запускаю запрос для вставки значений, я получаю следующую ошибку: «no such table: offerInfo». Может ли кто-нибудь помочь мне в этом?Нет такой таблицы Ошибка Sqlite iOS

+0

Очевидно, что таблица не была создана. –

+0

Напишите свой код, как вы делаете стол и где вы его делаете. – Lion

+0

Я создал таблицу через терминал. и теперь пытаюсь вставить в него значения, когда я получу эту ошибку. – Gurp321

ответ

4

Если вы создали базу данных на терминале, то проблема, скорее всего, связана с тем, как вы получили доступ к базе данных с терминала на ваше устройство iOS. Обычно вы включаете его в комплект (и убедитесь, что у вас есть галочка против соответствующей цели), а затем у вас будет код, который ищет базу данных в документах, и если он ее не найдет, скопируйте ее из связать с документами. Типичная проблема заключается в простой ошибке в этой логике (возможно, в предыдущей итерации разработки), которая не смогла скопировать ее должным образом, а затем вызвала sqlite3_open, которая создала пустую базу данных.

Вероятно, где-то в этом процессе было обнаружено недостаточное обнаружение ошибок/отчетность, поэтому некоторая ошибка не была обнаружена и была создана пустая база данных. Итак, я бы порекомендовал:

  • удалить приложение с устройства (чтобы избавиться от любой пустой базы данных в папке «Документы», если таковая имеется);

  • проверка/обнаружение ошибок с двойной проверкой (например, проверить все коды возврата NSFileManager и NSError объектов);

  • не используют sqlite3_open, а использовать sqlite3_open_v2 так, что он никогда не будет создавать пустую базу данных (а именно, с SQLITE_OPEN_READWRITE вариант, но неSQLITE_OPEN_CREATE); и

  • Запустите приложение еще раз и проверьте, можете ли вы определить, в каком процессе он поступил.


Кстати, если вы не верите, что таблица действительно отсутствует в базе данных, я предлагаю вам открыть базу данных симулятора от MacOS SQLite инструмента, а просто подтвердить. Так

  • перейдите к папке Documents симулятора:

    ~/Library/Developer/CoreSimulator/Devices/[GUID]/данные/Контейнеры/Data/Application/[GUID]/Документы

    и

  • Открыть эту базу данных в вашем SQLite интерфейсе терминала, и подтвердить наличие или отсутствие рассматриваемой таблицы.

-1

Создайте таблицу, используя браузер SQLite. Который вы можете скачать с here. Далее следует шаг

1) Откройте проект db, щелкнув по нему.

2) Создать таблицу Запрос или использование пользовательского интерфейса.

3) Выполняйте запрос независимо от того, что вы хотите.

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