关于数据库合并问题整理
来源:互联网 发布: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];
}
}
- 关于数据库合并问题整理
- 关于字符串拆分,合并问题的整理
- 关于数据库的面试问题(整理)
- mysql数据库合并问题
- 关于oracle数据库中读取文件路径的问题整理
- 数据库设计问题整理
- 数据库问题整理
- cat合并文件的问题(整理)
- 关于Oracle数据库的整理
- MySql数据库相关问题整理
- 整理关于c++内存问题
- 关于NaN的问题整理
- 关于结构相同多表合并问题
- 关于vsFlexGrid的合并的问题
- 关于独立RTF文件合并的问题
- 关于号段合并的问题
- 关于SVN主干和分支合并问题
- 关于CSS 外边距合并的问题
- java可视化日历
- C/C++之动态分配内存
- oracle实现类似mysql的LIMIT,也可以作为oracle分页使用
- NoClassDefFoundError with Android Studio
- Windows 下 Nginx+IIS 使用
- 关于数据库合并问题整理
- ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】
- 第五周项目三任意输入N显示不同N取值的结果
- 2016.09.27回顾
- Java面试题大全(数据库部分三)
- ArcMap中毫秒转换为日期格式
- ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】
- MFC框架使用总结
- 关于bootstrap如何让一个div在垂直水平方向居中且自适应不同分辨率