我在iOS框架中使用带有sqlite库的FMDB,并且遇到一个问题,即对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查询并在我的数据库上运行它时,它返回结果,但代码没有。
这不是一致的,而是一直在发生。我会很高兴任何指针..
由于
阿亚拉