2012-03-25 4 views
1

Я включил базу данных в свой проект, а также использовал fmdb раньше. Я попытался скопировать мой код из моего старого проекта, но до сих пор он не говорит: «Нет такой стол»Нет такой проблемы с таблицей

Вот лог консоли:

DB Error: 1 "no such table: ANIMALS" 
DB Query: SELECT * FROM ANIMALS WHERE Name = 'koyun' 
DB Path: (null) 

и вот мой код:

 NSString *path = [[NSBundle mainBundle] pathForResource:@"HayvanlarM" ofType:@"sqlite"]; 

    FMDatabase *database = [FMDatabase databaseWithPath:path]; 

    [database setLogsErrors:TRUE]; 

    [database open]; 

    NSString *anQuery = [[NSString alloc]initWithFormat:@"SELECT * FROM ANIMALS WHERE Name = '%@' ",[[bBackG objectAtIndex:0]stringByDeletingPathExtension]]; 

    FMResultSet *results = [database executeQuery:anQuery]; 


    while([results next]) { 

     NSString *animalName = [results stringForColumn:@"TR"]; 

     //gjText.text = animalName; 
     NSLog(@"animalName: %@",animalName); 
    } 



    [database close]; 
    database = nil; 

I попытался создать свой db через firefox sqlite manager, и я попробовал lita, но оба дали мне ту же ошибку. (no such table)

Может ли кто-нибудь сказать мне, в чем проблема в моем коде? Я пробовал все решения, связанные с такой проблемой, и никто из них не работал со мной до сих пор.

+0

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

+0

Когда я включал db в Xcode, я не хотел добавлять его в цель, после того, как я решил добавить его в приложение, он начал считываться из базы данных спасибо :) – mortgy

ответ

1

, когда я был в том числе дб в Xcode, я не выбирал, чтобы добавить его к цели, после того, как я выбираю, чтобы добавить его к цели приложения, он начал читать из базы спасибо :)

0

Я решен аналогичную проблему, удалив приложение в симуляторе и rebulid proj. Я думаю, что DB приложения не был тем, который я изменил. Очистите приложение в симуляторе x-code, скопируйте новейшую БД.

1

Убедитесь, что при доступе к существующей базе данных необходимо совместить физический тип базы данных и тип базы данных. как .sqlite или .db

let path = NSBundle.mainBundle().pathForResource("Database", ofType:"db") 
Смежные вопросы