FMDatabase使用sum函数,ResultSet的bug
来源:互联网 发布:mysql 指定数据库 编辑:程序博客网 时间:2024/04/29 22:54
这个bug在SO上没搜到
sql语句是:
select sum(total) as total_sum, total, project_name from service_performance_day where enterprise_id = :eid and year = :year and month = :month and day = :day order by total desc
关键是使用了sqlite内置的sum函数,然后即使表中没有记录,ResultSet的next方法也返回YES
while([rs next]){ double sum = [[rs objectForColumnName:@"total_sum"] doubleValue]; double total = [[rs objectForColumnName:@"total"] doubleValue]; NSString *name = [rs objectForColumnName:@"project_name"]; ServicePerformance *performance = [[ServicePerformance alloc] initWithTitle:name Value:total Ratio:total / sum]; [performances addObject:performance];}
正常情况下,如果没有使用sum函数,不会走到while循环体中。但是使用了sum函数(其他内置函数没有测过),ResultSet的next函数就有BUG了
解决的办法是,先count一下符合条件的记录数
int count = [db intForQuery:@"select count(1) from service_performance_day where enterprise_id = :eid and year = :year and month = :month and day = :day;", enterpriseId, [NSNumber numberWithLong:year], [NSNumber numberWithLong:month], [NSNumber numberWithLong:day]];if(count == 0){ [db close]; return [NSMutableArray array];}
0 0
- FMDatabase使用sum函数,ResultSet的bug
- IOS:FMDatabase的使用
- FMDatabase 数据库的使用
- 数据库-FMDatabase的使用
- 使用FMDataBase
- 一个ResultSet的 Bug教训
- 数据库-FMDatabase在多线程下的使用
- Resultset的使用
- iphone--FMDatabase 使用
- iphone--FMDatabase 使用
- FMDatabase介绍使用
- iOS开发 - FMDatabase 使用
- iOS FMDataBase split 使用
- 关于ResultSet的getRow()函数
- IOS第三方数据库FMDatabase的简单使用
- IOS第三方数据库FMDatabase的简单使用
- IOS第三方数据库FMDatabase的简单使用
- IOS第三方数据库FMDatabase的简单使用
- zz 上海交大ACM队长建议——谈谈ACM比赛中的代码能力
- JComboBox自定义滚动条和去掉默认背景
- C++使用libcurl做HttpClient
- HTTP协议详解
- {}如何在B2B网站上发布信息
- FMDatabase使用sum函数,ResultSet的bug
- Dell vostro安装win7摄像头常亮解决办法
- java-判断一个自然数是否是某个数的平方。当然不能使用开方运算
- 《Linux》天影linux系列笔记一——linux常用命令详解:head
- spark学习六 DStream的运行原理解析
- 笙泉MA505_24,串口打印乱码问题解决
- 黑马程序员_面向对象
- android 自动化测试之MonkeyRunner学习(一)
- ConcurrentHashMap实现机制