私は、私がやっているsqliteプロジェクトに問題があります。私はFMDBを使用しています。私は簡単な例に従いますが、うまくいきません。そして、私はエラーを見つけることができません。私は端末からデータベースのスキーマを作成しました。データをいくつか入れました。私はios devにはとても新しいので、私はステップをOKにしたかどうかは分かりません。 これは私がやったことです:FMDB ios no such table
1 - データベーススキーマを作っていくつかのフィールドを追加しました。 2 - database.dbをxcodeのプロジェクトフォルダにコピーしました。 3 - FMDBファイルを追加します。 4 - 私はsqlite3.dylib 5追加 - 私はこのコードを置く:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.dbname = @"database.db";
NSArray * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * docDIr = [docPath objectAtIndex:0];
self.dbpath = [docDIr stringByAppendingPathComponent:dbname];
[self checkDB];
[self getQ];
return YES;
}
-(void) getQ
{
FMDatabase * db = [FMDatabase databaseWithPath:dbpath];
[db open];
FMResultSet * result = [db executeQuery:@"SELECT * FROM table1"];
NSLog(@"last Error: %@",[db lastErrorMessage]);
NSLog(@"result: %@", result);
}
-(void) checkDB
{
BOOL success;
NSFileManager * fm = [NSFileManager defaultManager];
success = [fm fileExistsAtPath:dbpath];
NSError * error = [[NSError alloc] init];
if (success) return;
NSLog(@"result:");
NSString * dbPathFromApp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:self.dbname];
[fm copyItemAtPath:dbPathFromApp toPath:dbpath error:&error];
}
をどうやらデータベースはそれが空だ、だから何が起こったのか?なぜ私はtable1を見つけることができないのですか?任意のsqlite GUIでファイルを開くと、テーブルが正常に表示されます。ありがとうございました コンソールは私に次の行を表示します: 2013-03-02 14:03:31.839 myApp [21433:c07]最後のエラー:そのようなテーブルはありません:table1 2013-03-02 14:03:31.841 myApp [21433:C07]結果:(ヌル)
ありがとうございました!それで、ステップ1と2は完璧に動作します!私はステップ、初心者の間違いを忘れます:D – Fede
あなたのポイント2は私が忘れたものです。バンドルからドキュメントディレクトリにデータベースをコピーしませんでした。 – Suragch
ありがとうございました!〜ステップ1は私がする必要があったものでした:) –