我有一個我正在做的sqlite項目的問題,我正在使用FMDB,我遵循一個簡單的例子,但沒有工作。我找不到錯誤。我從終端做了我的數據庫模式,我在上面放了一些數據。我對ios dev非常陌生,所以我不知道我是否確實按照步驟操作。 這就是我所做的:FMDB ios沒有這樣的表
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:05:13.839 myApp [21433:c07] last Error:no such table:table1 2013-03-02 14:01: [21433:C07]結果:(空)
非常感謝!就是這樣,第1步和第2步完美無缺!我忘了一步,新手錯誤:D – Fede 2013-03-02 17:27:58
你的觀點2是我忘了。我沒有將數據庫從數據包複製到文檔目錄。 – Suragch 2015-08-20 15:21:52
非常感謝!第一步是我需要做的:) – 2015-08-29 10:03:58