// // sysInfo.m // myhome // // Created by hkh on 15/10/31. // // #import "sysInfo.h" #import "Opendoor.h" @interface sysInfo () @end @implementation sysInfo{ } @synthesize db = db; - (Boolean)initDB{ //打开数据库 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //获取应用程序生成一个私有目录/Users/apple/Library/Application Support/iPhone Simulator/4.3/Applications/550AF26D-174B-42E6-881B-B7499FAA32B7/Documents NSString *documentsDirectory = [paths objectAtIndex:0]; // NSString *path = [documentsDirectory stringByAppendingPathComponent:@"linetsql.sqlite"]; if (sqlite3_open([path UTF8String], &db) != SQLITE_OK) { sqlite3_close(db); NSLog(@"数据库打开失败"); return FALSE; } else { NSLog(@"数据库打开成功"); return TRUE; } } - (void)sqlexe:(NSString *)sql { char *err; int ret = sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err); NSLog(@"数据库操作结果!%d",ret); if ( ret!= SQLITE_OK) { sqlite3_close(db); NSLog(@"数据库操作数据失败!%@",[NSString stringWithUTF8String:err]); } } - (void)readSystemInfo { self.equid = @""; self.username = @""; self.server_wan = @"8.129.71.206"; self.server_port = 8367; self.port = 8366; self.equip = @"0.0.0.0"; self.reporttime = 15; self.smscodetime = 0; self.pushkitToken = @""; self.push = 1; self.HF = 0; self.sandbox = 0; NSString *sql = @"SELECT * FROM linet_sysinfo"; sqlite3_stmt * statement; if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) { NSLog(@"sqlite3_prepare_v2 OK"); while(sqlite3_step(statement) == SQLITE_ROW) { NSString *key = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ]; if( [@"equid" isEqualToString: key]){ self.equid = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; } else if([@"push" isEqualToString: key]){ self.push = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue]; } else if([@"HF" isEqualToString: key]){ self.HF = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue]; } // else if( [@"equip" isEqualToString: key]){ // self.equip = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; // } // else if([@"equmac" isEqualToString: key]){ // self.equmac = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; // } // else if([@"port" isEqualToString: key]){ // self.port = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue]; // } // else if([@"server" isEqualToString: key]){ // self.server = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; // } // else if([@"server_wan" isEqualToString: key]){ // self.server_wan = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; // } // else if([@"server_port" isEqualToString: key]){ // self.server_port = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue]; // } else if([@"lasttime" isEqualToString: key]){ self.lasttime = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; } else if([@"username" isEqualToString: key]){ self.username = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; } else if([@"token" isEqualToString: key]){ self.token = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; } else if([@"smscodetime" isEqualToString: key]){ self.smscodetime = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] longLongValue]; } } } else{ //没有linet_sysinfo,初始化数据库 NSLog(@"sysinfo不存在,创建表并初始化数据库"); //创建系统参数表 sql=@"DROP TABLE if exists linet_sysinfo"; NSLog(@"drop"); [self sqlexe:sql]; sql =@"create table linet_sysinfo(pname string primary key,pvalue string)"; [self sqlexe:sql]; sql =@"create table record(no integer PRIMARY KEY AUTOINCREMENT,stime long,type string,username string,equid string,name string,img string,note string)"; [self sqlexe:sql]; } } - (void)SaveRecord:(long)time Type:(NSString *)type Equ:(NSString *)equid Img:(NSString *)img Note:(NSString *)note{ NSString *name = [Opendoor EquNameById:equid]; NSString *sql = [[NSString alloc] initWithFormat: @"insert into record(stime,type,username,equid,name,img,note) values (%ld,'%@','%@','%@','%@','%@','%@')",time,type,self.username,equid,name,img,note] ; NSLog(sql); [self sqlexe:sql]; } - (NSMutableArray *)readRecord:(NSString *)no{ NSMutableArray *ret = [[NSMutableArray alloc] initWithCapacity:0]; NSString *sql; if(no){ sql = [[NSString alloc] initWithFormat:@"SELECT no,stime,type,equid,name,img,note FROM record where username='%@' and no<%@ order by no desc limit 0,20",self.username,no] ; } else{ sql = [[NSString alloc] initWithFormat:@"SELECT no,stime,type,equid,name,img,note FROM record where username='%@' order by no desc limit 0,20",self.username] ; } //sql = @"SELECT no,stime,type,equid,name,img,note FROM record order by no desc" ; NSLog(sql); sqlite3_stmt * statement; if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) { NSLog(@"sqlite3_prepare_v2 OK"); while(sqlite3_step(statement) == SQLITE_ROW) { NSDictionary *dic = [[NSDictionary alloc] initWithObjects:@[ [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 2) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 4) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 5) ], [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 6) ] ] forKeys:@[@"no",@"stime",@"type",@"equid",@"name",@"img",@"note"]]; // for (id key in dic) { // id value=[dic objectForKey:key]; // NSLog(@"readRecord:%@:%@",key,value); // // } [ret addObject:dic]; } } return ret; } - (void)delRecord:(NSString *)condition{ NSString *sql = [[NSString alloc] initWithFormat:@"select img FROM record where username='%@' and type='截图' %@",self.username,condition] ; sqlite3_stmt * statement; if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) { NSLog(@"sqlite3_prepare_v2 OK"); while(sqlite3_step(statement) == SQLITE_ROW) { NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *imageFilePath = [path stringByAppendingPathComponent:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ]]; [[NSFileManager defaultManager] removeItemAtPath:imageFilePath error:nil]; } } sql = [[NSString alloc] initWithFormat:@"delete FROM record where username='%@' %@",self.username,condition] ; NSLog(sql); [self sqlexe:sql]; } - (void)setSystemInfo:(NSString *)key WithValue:(NSString *)value { NSString *sql = [[NSString alloc] initWithFormat: @"SELECT * FROM linet_sysinfo where pname='%@'",key] ; sqlite3_stmt * statement; int ret = sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil); if(ret == SQLITE_OK) { if(sqlite3_step(statement) == SQLITE_ROW) { sql = [[NSString alloc] initWithFormat: @"update linet_sysinfo set pvalue='%@' where pname='%@'",value,key] ; } else{ sql = [[NSString alloc] initWithFormat: @"insert into linet_sysinfo(pname,pvalue) values('%@','%@')",key,value] ; } NSLog(@"%@",sql); [self sqlexe:sql]; } else{ NSLog(@"setSystemInfo 失败:%d",ret); } // NSString *sql = [[NSString alloc] initWithFormat:@"update linet_sysinfo set equid='%@',equip='%@',equmac='%@',port=%d,server='%@',server_wan='%@',server_lan='%@',equ_server=%d,code_mode=%d,subequid=%d",sysinfo.equid,sysinfo.equip,sysinfo.equmac,sysinfo.port,sysinfo.server,sysinfo.server_wan,sysinfo.server_lan,sysinfo.equ_server,sysinfo.code_mode,sysinfo.subequid]; // NSLog(@"%@",sql); // [self sqlexe:sql]; } @end