SQLite ошибка "нет такой таблицы" - PullRequest
1 голос
/ 24 декабря 2009

Я нуб, но почему я получаю эту ошибку?

У меня действительно есть таблица с именем Team в SQLite под названием Team.sqlite! Что-нибудь еще, что я должен предоставить?

ERROR
---------------
2009-12-23 23:17:05.277 PitScout[6690:207] *** Assertion failure in -[Team addTeam], /Users/******/Desktop/PitScout/Classes/Team.m:90
2009-12-23 23:17:05.280 PitScout[6690:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error while creating add statement. 'no such table: Team''
2009-12-23 23:17:05.280 PitScout[6690:207] Stack: (
    30131291,
    2502464777,
    30215227,
    810772,
    16329,
    12146,
    20588,
    2753625,
    4667381,
    2753625,
    3160994,
    3169731,
    3164943,
    2858547,
    2766876,
    2793653,
    37420753,
    29916032,
    29912136,
    37414797,
    37414994,
    2797571,
    10780,
    10634
)

Ответы [ 2 ]

3 голосов
/ 24 декабря 2009
  1. Использовать CoreData. Прямое использование SQLite сложнее, требует больше кода и является пустой тратой времени, если у вас нет особых потребностей.

  2. Вы говорите:

У меня действительно есть таблица с именем Team в SQLite называется Team.sqlite! Есть что еще мне нужно предоставить?

Это не имеет смысла. Вы говорите, что у вас есть база данных с именем «Team.sqlite»? Или у вас есть таблица с именем "Team.sqlite"? Таблица с именем «Team.sqlite» отличается от таблицы с именем «Team».

Как вы создаете таблицу? То есть что за оператор CREATE TABLE вы используете?

1 голос
/ 25 декабря 2009

Примечание. Я перезапустил свой проект с нуля, и теперь он исправлен. Это оказалось проблемой с моими операторами SQL. Спасибо всем!

РЕДАКТИРОВАТЬ: Исправление касалось моих операторов SQL: я вызывал таблицу, которая существует, но я использовал:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"SQLITE.sqlite"];

вместо:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Team.sqlite"];

, который на самом деле был вызван одной из моих предыдущих сборок приложения.

Однако с My Teams.m все было в порядке. Это было на самом деле в моем SQLAppDelegate.m.

...