我在 iOS 应用程序中有一个函数,它从数据库中读取一些数据。功能非常简单:
-(void) readCategories {
sqlite3 *database;
if([[NSFileManager defaultManager] fileExistsAtPath:databasePath]){
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
const char *sqlStatement = "SELECT * FROM Categories ORDER BY name COLLATE NOCASE ASC";
sqlite3_stmt *compiledStatement;
int errorCode = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);
if(errorCode == SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
[categories addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]];
}
} else {
NSLog(@"Error reading categories. Code: %d, message: '%s'", errorCode,sqlite3_errmsg(database));
}
sqlite3_finalize(compiledStatement);
sqlite3_close(database);
} else {
NSLog(@"Error opening DB");
}
} else {
NSLog(@"DB does not exist.");
}
}
问题是错误代码始终是 SQLITE_ERROR,根据文档,它是:“SQL 错误或缺少数据库”。给出的消息是:'没有这样的表:类别'
现在,如果我查看计算机上的数据库文件,表格显然就在那里。我也可以在它上面运行完全相同的查询并且它工作正常。
有人对出了什么问题有任何想法吗?
谢谢。