我在我的 iphone 应用程序(SDK 6.1)中使用 FMDB。我有 3 个 DB 在这个应用程序中使用 FMDB。我向同一个应用程序添加了另一个数据库文件。这个也应该返回结果,但实际上它只是返回 0 个结果。如果我在 unix 提示符中使用 sqlite3 并复制我的查询(从表名中选择 *),我会看到结果。
有人看到这段代码有什么问题吗?我也打开了错误检查,运行代码时没有错误。我尝试删除该应用程序并在模拟器和 iPhone 上重新安装它并获得相同的结果。
谢谢你的帮助!
FMDatabase *database = [FMDatabase databaseWithPath:file];
database.logsErrors = YES;
if (![database open])
{
[Log log:TERR :@"ERROR Opening Database <%@>", file];
return FILE_NOT_FOUND;
}
NSString *selquery = [[[NSString alloc] initWithFormat:@"SELECT * FROM %@",
tablename] autorelease];
[Log log:TINFO :@"selquery: %@", selquery];
FMResultSet *results = [database executeQuery:selquery];
NSUInteger count = [database changes]; // how many rows affected apparently
if (!count)
{
[Log log:TINFO :@"NO RESULTS FOUND, count = %d", count];
return NO_SQL_RESULTS;
}
if ([database hadError])
{
NSString *msg = [[[NSString alloc] initWithFormat:@"Database Error <%@> %d: %@", dbname, [database lastErrorCode], [database lastErrorMessage]] autorelease];
[Log log:TERR :msg];
[Log log:TSERVLOG :msg];
return DB_ERROR;
}
SearchItem *item = nil;
while ([results next])
{