我有一个应用程序从SQLite数据库中提取信息。它在iPhone模拟器上运行得很好,但是当我在设备上测试时,我什么也得不到。在两者之间使用数据库是否存在差异?我试过看了一遍,找不到任何有帮助的东西。我看到这个问题在谷歌上很常见,我只是没有找到适合我的解决方案。
我已经设置了断点并尝试对其进行调试,在实际设备上它永远不会通过while (sqlite3_step(statement) == SQLITE_ROW)
,它总是返回SQLITE_DONE
。我无法弄清楚为什么这会在设备上发生变化。任何帮助将不胜感激,有关SQLite的建议,或者代码是否可以改进等等。谢谢。
NSString *qsql = @"SELECT Distinct State FROM School";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, nil) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
char *colState = (char *) sqlite3_column_text(statement, 0);
NSString *state = [[NSString alloc] initWithUTF8String:colState];
[states addObject:state];
[state release];
}
sqlite3_reset(statement);
}
return states;
}