2011-09-24 63 views
2

我有一個sqlite的問題。sqlite3_prepare_v2沒有這樣的表錯誤

我的上述代碼:

-(NSString *) filePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 
    NSString *dbPath = [documentsDir stringByAppendingPathComponent:@"Yok_Artik.sqlite"]; 
    return dbPath; 
} 

-(void) openDB { 

    if (sqlite3_open([[self filePath] UTF8String], &db) == SQLITE_OK) { 

     const char *sqlStatement = "SELECT content, image FROM yok_artik ORDER BY RANDOM() LIMIT 1;"; 

     sqlite3_stmt *compiledStatement; 

     if (sqlite3_prepare_v2(db, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) { 

      if (sqlite3_step(compiledStatement) == SQLITE_ROW) { 

       NSString *myContent = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)]; 

       yaContent.text = myContent; 

      } else { 

       NSLog(@"Error (sqlite3_step): %s", sqlite3_errmsg(db)); 

      } 

     } else { 

      NSLog(@"Error (sqlite3_prepare): %s", sqlite3_errmsg(db)); 

     } 

    } else { 

     NSLog(@"Error (sqlite3_open): %s", sqlite3_errmsg(db)); 

    } 

} 

我有錯誤在sqlite3_prepare_v2命令

錯誤消息: 錯誤(sqlite3_prepare):沒有這樣的表:yok_artik

如何解決這個問題?

順便說一句,sqlite3_open工作正常。

+0

你在該數據庫中有一個名爲'yok_artik'的表嗎? – Mat

+0

是的,我有'yok_artik'表。 –

+0

那麼,SQLite引擎不同意你。你確定你正在打開數據庫嗎? – Mat

回答

-2

我的錯誤是filePath。我改變它。

+0

它有什麼問題?你能詳細說明一下,讓其他人可以從中學習嗎 –

+0

需要一個財富的答案,所以它可以幫助我和其他人...... –