簡體   English   中英

FMDB ios 沒有這樣的表

[英]FMDB ios no such table

我正在做的一個 sqlite 項目有問題,我正在使用 FMDB,我遵循一個簡單的例子,但不起作用。 而且我找不到錯誤。 我從終端做了我的數據庫模式,我在上面放了一些數據。 我對 ios dev 很陌生,所以我不知道我是否正確地完成了這些步驟。 這就是我所做的:

1 - 我制作了我的數據庫架構並添加了一些字段。 2 - 我在 xcode 中將 database.db 復制到我的項目文件夾中。 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] last Error: no such table: table1 2013-03-02 14:03:31.841 myApp[21433: c07] 結果:(空)

一些想法:

  1. 我確認數據庫已添加到您的包中。 轉到您的目標設置,選擇“構建階段”,展開“復制捆綁資源”,並確保您的數據庫在那里列出。 如果沒有,請單擊“+”按鈕並添加它。

    捆

  2. 我會重置你的模擬器。 如果您曾經運行過該應用程序並且沒有正確復制數據庫,它就會在您的文檔文件夾中為您創建一個空白數據庫。 通過重置模擬器,您可以擺脫可能存在的任何空白數據庫。

  3. 如果它仍然不起作用,我會檢查模擬器中的包數據庫。 導航到模擬器文件夾(~/Library/Application Support/iPhone Simulator),找到應用程序,打開包(通過控制單擊應用程序本身並說“顯示包內容”),然后檢查那里的數據庫並制作確定它有你的table1

添加數據庫文件后,請選擇該文件並勾選標記目標成員資格。

檢查附件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM