2011-09-24 82 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

需要一个财富的答案,所以它可以帮助我和其他人...... –