我在 iOS 框架中将 FMDB 与 sqlite 库一起使用,并且遇到对 db 的查询没有结果的问题,而如果我从数据库浏览器运行相同的查询,它会给我带来预期的结果。
这是获取数据的代码(使用哈希和时间戳):
NSMutableArray* classes = [NSMutableArray array];
NSArray* args;
NSString* sqlQuery = @"SELECT * FROM " T_DATA " WHERE " F_QUERY_HASH "=? AND " F_QUERY_TIMESTAMP ">? AND " F_QUERY_DATA_TYPE "=?";
args = [NSArray arrayWithObjects:[NSNumber numberWithInteger:[query hash]], [NSDate dateWithTimeIntervalSinceNow:(-QUERY_VALIDITY_TIME)], [NSNumber numberWithInt:QueryDataTypeClasses],nil];
__block BOOL found = NO;
[self inDatabase:^(FMDatabase *db) {
FMResultSet* res = [db executeQuery:sqlQuery withArgumentsInArray:args];
if ([res next]) {//should not be more than one result
found = YES;
NSData* classesData = [res dataForColumn:F_QUERY_DATA];
[classes addObjectsFromArray:[dataParser classesFromData:classesData query:query]];
}
}];
当我打印出 sql 查询并在我的数据库上运行它时,它会返回结果,但代码不会。这并不一致,但一直在发生。我会很高兴任何指针..
谢谢
阿亚拉