2012-03-25 12 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; 

私はfirefoxのsqliteマネージャーを介して私のDBを作成しようとしたとlitaを試みたが、両方私は同じエラーを与えた(no such table)

私のコードで何が問題なのか教えてもらえますか?私はそのような問題について投稿されたすべてのソリューションを試してみましたが、どれも今まで私と協力していませんでした。私はXcodeでデシベルを含めたとき

+0

あなたが返されるパスが有効であることを確認することはできますか?データベースが見つからない場合のSQLiteのデフォルトの動作は、新しい空のデータベースを作成することです。空であるため、探しているテーブルが見つかりません。 – borrrden

+0

Xcodeにdbを含めると、ターゲットに追加することを選択しなかったので、アプリケーションターゲットに追加することを選択した後、データベースから読み取るようになりました。 ありがとう:) – mortgy

答えて

1

、私はアプリの対象に追加することを選択した後、それがデータベースから読み始め、ターゲットにそれを追加することを選択されなかったあなたに感謝:)

0

私は解決類似の問題は、シミュレータのアプリを削除し、プロジエクトを再構築することによって解決されます。 私はアプリのDBが私が変更したものではないと思う。シミュレータでアプリをきれいにするxコードは最新のDBをコピーする。

1

物理データベースの種類とコードのデータベースタイプが一致する必要がある既存のデータベースにアクセスしていることを確認してください。 .sqlite様または.db

let path = NSBundle.mainBundle().pathForResource("Database", ofType:"db") 
関連する問題