关于数据库合并问题整理

来源:互联网 发布:linux清理根目录空间 编辑:程序博客网 时间:2024/06/17 02:22

-(void)downLoadFile:(VoodaProgressHUD *)downFileHud

{

请求服务器数据data

    UserModel * user = [AppDelegatesharedAppDelegate].defaultUser;

    NSString *str1=@"http://………………bs_image/bakfile/";

    NSString *str2 = [NSStringstringWithFormat:@"%@.db",user.UserID];

    NSString *str = [str1 stringByAppendingString:str2];

    NSData *data = [mulFetcherDownloadFilegetFileHttpSynWithURLString:str];

    if (data) {

        UserModel * user = [AppDelegatesharedAppDelegate].defaultUser;

        /*根据路径创建数据库和表*/

        NSArray *filePath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

        NSString *documentPath = [filePath objectAtIndex:0];

        NSString *dbFilePath = [documentPath stringByAppendingPathComponent:[NSStringstringWithFormat:@"IDO_%@.sqlite",user.UserID]];

        

         NSString *newdbFilePath = [documentPathstringByAppendingPathComponent:[NSStringstringWithFormat:@"newIDO_%@.sqlite",user.UserID]];

        

        BOOL B = [data writeToFile:newdbFilePath atomically:YES];

        

        /*将下载下来的文件通过比对后写入数据库文件中*/

        FMDatabase* database = [ FMDatabase databaseWithPath: dbFilePath];

        FMDatabase* newdatabase = [ FMDatabase databaseWithPath: newdbFilePath];

        if ( ![ database open ] )

        {

            return;

        }

        if ( ![ newdatabase open ] )

        {

            return;

        }

        

        // 查找表 sport_day_data

        FMResultSet* newstepsSet = [newdatabaseexecuteQuery:@"select * from sport_day_data" ];

        

        // 逐行读取数据

        while ([newstepsSet next ] )

        {

            // 对应字段来取数据

            NSString* oldsteps;

            NSString* date = [newstepsSet stringForColumn: @"date" ];

            FMResultSet* oldstepsSets=[databaseexecuteQuery:@"select steps from sport_day_data where date=?",date];

            

            

            NSLog(@"historysteps is ---------%@",oldstepsSets);

            while ([oldstepsSets next ] )

            {

                oldsteps = [oldstepsSets stringForColumn:@"steps" ];

                NSLog(@"oldsteps is ---------%@",oldsteps);

            }

            NSString* newsteps = [newstepsSet stringForColumn: @"steps" ];

            if(!oldsteps)

            {

                //今日运动把刷新来的数据重新插入数据库

                VoodaDBModel *parameterModel=[[VoodaDBModelalloc]init];

                parameterModel.date   = date;

                parameterModel.steps   = newsteps;

                parameterModel.total_distance = [newstepsSetstringForColumn:@"total_distance" ];

                parameterModel.total_cal  = [newstepsSetstringForColumn:@"total_cal" ];

                parameterModel.goal_steps = [newstepsSetstringForColumn:@"goal_steps" ];

                parameterModel.times = [newstepsSetstringForColumn:@"times" ];

                parameterModel.hour_steps = [newstepsSetstringForColumn:@"hour_steps" ];

//                VoodaDBOperation * Operation = [[VoodaDBOperation alloc] init];

//               BOOL modelbool=[Operation saveCalculater:parameterModel];


               NSString * proSqlStr = [NSStringstringWithFormat:@"INSERT INTO sport_day_data (date,hour_steps,total_cal,steps,total_distance,times,goal_steps) VALUES ('%@','%@','%@','%@','%@','%@','%@')",parameterModel.date,parameterModel.hour_steps,parameterModel.total_cal,parameterModel.steps,parameterModel.total_distance,parameterModel.times,parameterModel.goal_steps];

                bool b = [database executeUpdate:proSqlStr];


            }

            else

            {

                if([oldsteps integerValue]< [newsteps integerValue])

                {

                    //今日运动把刷新来的数据重新插入数据库

                    VoodaDBModel *parameterModel=[[VoodaDBModelalloc]init];

                    parameterModel.date   = date;

                    parameterModel.steps   = newsteps;

                    parameterModel.total_distance = [newstepsSetstringForColumn:@"total_distance" ];

                    parameterModel.total_cal  = [newstepsSetstringForColumn:@"total_cal" ];

                    parameterModel.goal_steps = [newstepsSetstringForColumn:@"goal_steps" ];

                    parameterModel.times = [newstepsSetstringForColumn:@"times" ];

                    parameterModel.hour_steps = [newstepsSetstringForColumn:@"hour_steps" ];

//                    VoodaDBOperation * Operation = [[VoodaDBOperation alloc] init];

//                    BOOL modelbool=[Operation saveCalculater:parameterModel];

                    

                   NSString *proSqlStr = [NSStringstringWithFormat:@"UPDATE sport_day_data SET date='%@',hour_steps='%@',total_cal='%@',steps='%@',total_distance='%@',times='%@',goal_steps='%@' where date='%@'",parameterModel.date,parameterModel.hour_steps,parameterModel.total_cal,parameterModel.steps,parameterModel.total_distance,parameterModel.times,parameterModel.goal_steps,parameterModel.date];

                    bool b = [database executeUpdate:proSqlStr];

                }

            }

             NSLog(@"newsteps is ---------%@",newsteps);

        }


        // 查找表 sleep_day_data

        FMResultSet* newsleepSet = [newdatabaseexecuteQuery:@"select * from sleep_day_data" ];

        

        // 逐行读取数据

        while ([newsleepSet next ] )

        {

            // 对应字段来取数据

            NSString* oldsleep;

            NSString* date = [newsleepSet stringForColumn: @"date" ];

            FMResultSet* oldsleepSet=[databaseexecuteQuery:@"select all_time_min from sleep_day_data where date=?",date];

            while ([oldsleepSet next ] )

            {

                oldsleep = [oldsleepSet stringForColumn:@"all_time_min" ];

                NSLog(@"oldsleep is ---------%@",oldsleep);

                NSLog(@"date is --date is-------%@",date);

            }

            NSString* newsleep = [newsleepSet stringForColumn: @"all_time_min" ];

            if(!oldsleep)

            {

                //今日运动把刷新来的数据重新插入数据库

                VoodaDBBleModel *parameterModel=[[VoodaDBBleModelalloc]init];

                parameterModel.date   = date;

                parameterModel.end_sleep_min   = newsleep;

                parameterModel.awake_count = [newsleepSetstringForColumn:@"awake_count" ];

                parameterModel.end_sleep_hour  = [newsleepSetstringForColumn:@"end_sleep_hour" ];

                parameterModel.deep_sleep = [newsleepSetstringForColumn:@"deep_sleep" ];

                parameterModel.sleep_time_min = [newsleepSetstringForColumn:@"sleep_time_min" ];

                parameterModel.deep_sleep = [newsleepSetstringForColumn:@"deep_sleep" ];

                parameterModel.goal_time = [newsleepSetstringForColumn:@"goal_time" ];

                parameterModel.start_sleep_hour = [newsleepSetstringForColumn:@"start_sleep_hour" ];

                parameterModel.light_sleep = [newsleepSetstringForColumn:@"light_sleep" ];

                parameterModel.start_sleep_min = [newsleepSetstringForColumn:@"start_sleep_min" ];

                parameterModel.all_time_min = [newsleepSetstringForColumn:@"all_time_min" ];

                  

                NSString *proSqlStr = [NSStringstringWithFormat:@"INSERT INTO sleep_day_data (date,end_sleep_min,awake_count,end_sleep_hour,deep_sleep,sleep_time_min,goal_time,start_sleep_hour,light_sleep,start_sleep_min,all_time_min ) VALUES ('%@','%@','%@','%@','%@','%@','%@','%@','%@','%@','%@')",parameterModel.date,parameterModel.end_sleep_min,parameterModel.awake_count,parameterModel.end_sleep_hour,parameterModel.deep_sleep,parameterModel.sleep_time_min,parameterModel.goal_time,parameterModel.start_sleep_hour,parameterModel.light_sleep,parameterModel.start_sleep_min,parameterModel.all_time_min];

                

                bool b = [database executeUpdate:proSqlStr];

                

            }

            else

            {

                if([oldsleep integerValue] ==  [newsleep integerValue])

                {

                    //今日运动把刷新来的数据重新插入数据库

                    VoodaDBBleModel *parameterModel=[[VoodaDBBleModelalloc]init];

                    parameterModel.date   = date;

                    parameterModel.end_sleep_min   = newsleep;

                    parameterModel.awake_count = [newsleepSetstringForColumn:@"awake_count" ];

                    parameterModel.end_sleep_hour  = [newsleepSetstringForColumn:@"end_sleep_hour" ];

                    parameterModel.deep_sleep = [newsleepSetstringForColumn:@"deep_sleep" ];

                    parameterModel.sleep_time_min = [newsleepSetstringForColumn:@"sleep_time_min" ];

                    parameterModel.deep_sleep = [newsleepSetstringForColumn:@"deep_sleep" ];

                    parameterModel.goal_time = [newsleepSetstringForColumn:@"goal_time" ];

                    parameterModel.start_sleep_hour = [newsleepSetstringForColumn:@"start_sleep_hour" ];

                    parameterModel.light_sleep = [newsleepSetstringForColumn:@"light_sleep" ];

                    parameterModel.start_sleep_min = [newsleepSetstringForColumn:@"start_sleep_min" ];

                    parameterModel.all_time_min = [newsleepSetstringForColumn:@"all_time_min" ];

                    

                    NSString *proSqlStr = [NSStringstringWithFormat:@"UPDATE sleep_day_data SET date='%@',end_sleep_min='%@',awake_count='%@',end_sleep_hour='%@',deep_sleep='%@',sleep_time_min='%@',goal_time='%@',start_sleep_hour='%@',light_sleep='%@',start_sleep_min='%@',all_time_min='%@' where date='%@'",parameterModel.date,parameterModel.end_sleep_min,parameterModel.awake_count,parameterModel.end_sleep_hour,parameterModel.deep_sleep,parameterModel.sleep_time_min,parameterModel.goal_time,parameterModel.start_sleep_hour,parameterModel.light_sleep,parameterModel.start_sleep_min,parameterModel.all_time_min,parameterModel.date];

                    bool b = [database executeUpdate:proSqlStr];

                }

            }

            

            NSLog(@"newsleep is ---------%@",newsleep);

        }

        downFileHud.mode = MBProgressHUDModeText;

        downFileHud.labelText = NSLocalizedString(@"数据合并完成,正在上传",nil);

        [downFileHud hide:NO];

        [downFileHud show:YES];

        [self performSelector:@selector(uploadDbFile:)withObject:downFileHudafterDelay:0.5];

    }else

    {

//        downFileHud.mode = MBProgressHUDModeText;

//        downFileHud.labelText = NSLocalizedString(@"同步失败",nil);

//        [downFileHud hide:NO];

//        [downFileHud show:YES];

//        [downFileHud hide:YES afterDelay:1.0];

    }

}


0 0
原创粉丝点击