iOS FMDB 查询 批量更新

作者: _浅墨_ | 来源:发表于2015-08-13 18:42 被阅读8077次
+ (NSMutableArray *)querygoodsByIdFromLocal:(NSString *)dayFlightId{
    FMDatabase *fmdb = [SADBManager sharedDB];
    if (!fmdb) {
        //失败处理
        return nil;
    }
    //编写SQL查询语句
    NSString *query = [NSString stringWithFormat:@"select * from FlightGoods where dayFlightId= '%@'", dayFlightId];
    
    FMResultSet *rs = [fmdb executeQuery:query];
    
    NSMutableArray *invArray = [[NSMutableArray alloc]init];
    FlightGoods *flightgoods;
    
    while ([rs next]) {
        flightgoods = [[FlightGoods alloc]init];

        flightgoods.dayFlightId = [rs stringForColumn:@"dayFlightId"];
        flightgoods.goodsCode = [rs stringForColumn:@"goodsCode"];
        flightgoods.goodsName = [rs stringForColumn:@"goodsName"];
        flightgoods.goodsUnit = [rs stringForColumn:@"goodsUnit"];
        flightgoods.remarks = [rs stringForColumn:@"remarks"];
        flightgoods.cabinStockNum = [[NSNumber alloc]initWithInt:[rs intForColumn:@"cabinStockNum"]];
        flightgoods.loseNum = [[NSNumber alloc]initWithInt:[rs intForColumn:@"loseNum"]];
        flightgoods.actualNum = [[NSNumber alloc]initWithInt:[rs intForColumn:@"actualNum"]];
        flightgoods.tempActualNum = flightgoods.actualNum;// 这里为tempActualNum赋值,之后根据这个值判断能否加1操作
        flightgoods.tempLoseNum = flightgoods.loseNum;
        flightgoods.tempRemarks = flightgoods.remarks;
        
        [invArray addObject:flightgoods];
    }
    return invArray;
}

// 更新对象值到数据库
+ (BOOL)updateGoodsByFlightGoods:(NSMutableArray *)flightGoodsArr{
    FMDatabase *fmdb = [SADBManager sharedDB];
    if (!fmdb) {
        //失败处理
        return nil;
    }
    
    [fmdb beginTransaction];
    BOOL isRollBack = NO;
    @try {
        for (int i = 0; i<[flightGoodsArr count]; i++) {
            
            FlightGoods * flightGoods = [flightGoodsArr objectAtIndex:i];
            NSString * update = [NSString stringWithFormat:@"update FlightGoods set actualNum = '%@', loseNum = '%@',remarks = '%@' where goodsCode = '%@'",flightGoods.actualNum,flightGoods.loseNum,flightGoods.remarks,flightGoods.goodsCode];
            BOOL isSuccess = [fmdb executeUpdate:update];
    
            if (!isSuccess) {
                NSLog(@"update Failure");
            }
        }
    }
    @catch (NSException *exception) {
        isRollBack = YES;
        [fmdb rollback];
    }
    @finally {
        if (!isRollBack) {
            [fmdb commit];
        }
    }
    
    return !isRollBack;

}

相关文章

网友评论

  • coderJerry01: 不管性别了,亲爱的,太感谢你了。解决了我的一个大问题,跪拜。:kissing_closed_eyes:
  • 陈江红:如果我的查询语句中有中文,查询失败,怎么设置
    0e972938470b:[NSString stringWithFormat:@"select * from %@",你的表名称]用这个方法
    _浅墨_:设置编码utf8试试
    iOS阿能:大佬解决了吗,我也遇到了
  • ebay_Happy: [dataRs close]; 少了一句这个
    _浅墨_:@beast文强 :+1:谢谢
  • b9645140e028:为什么你的方法没有打开数据库 和 关闭数据库了?

本文标题:iOS FMDB 查询 批量更新

本文链接:https://www.haomeiwen.com/subject/imxwqttx.html