ios数据库升级,自动添加字段

来源:互联网 发布:windows hadoop2.7.3 编辑:程序博客网 时间:2024/06/05 16:32


//表的某个字段是否存在- (BOOL) ifTableColExist:(NSString*)vTable Col:(NSString*)vCol{       if ([self isBlankString:vTable] || [self isBlankString:vCol]) {                return NO;    }        //表名转为小写,去掉空格    vTable = [vTable lowercaseString];    vTable = [vTable stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];        //字段名转为小写,去掉空格    vCol = [vCol lowercaseString];    vCol = [vCol stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];        //获取建表的sql语句    NSString *sql = [NSString stringWithFormat:@"select sql from sqlite_master where name = '%@'", vTable];           NSString *tTableSql = [m_db getFirstString:sql];         if ([CMXUtils isBlankString:tTableSql]) {              return NO;    }        tTableSql = [tTableSql lowercaseString];        //字段名有2种方式,1是双引号的,2是前后有空格的    NSString *tCol1 = [NSString stringWithFormat:@"\"%@\"",  vCol];    NSString *tCol2 = [NSString stringWithFormat:@" %@ ",  vCol];            BOOL tExist = ([tTableSql rangeOfString:tCol1].location != NSNotFound ||                   [tTableSql rangeOfString:tCol2].location != NSNotFound);        return tExist;}
+ (BOOL) isBlankString:(NSString *)string {    if (string == nil || string == NULL) {        return YES;    }    if ([string isKindOfClass:[NSNull class]]) {        return YES;    }    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {        return YES;    }    return NO;}
//需要新增的字段    if(![self ifTableColExist:@"t_photo" Col:@"is_iphone"]){        [m_db executeUpdate:@"ALTER TABLE t_photo ADD COLUMN is_iphone INTEGER default 0"];    }



0 0
原创粉丝点击