본문 바로가기
Developer/sqlite3

sqlite3 DB 마이그레이션 칼럼 검색 search columns

by MindOpener 2014. 4. 10.
반응형

// 메모 DB field check

    

    //SELECT sql FROM sqlite_master WHERE name='테이블이름' AND sql LIKE '%컬럼이름%'


마이그레이션 이후에 


마이그레이션이 제대로 되었는지 확인 할 필요가 .. 


생겼다. 


ProjectAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

    

    sqlite3* db = [delegate GetDB];

    sqlite3_stmt *statement = nil;

    

    NSString *query = @"SELECT count(sql) FROM sqlite_master WHERE name='memo' AND sql  like '%bide%'";


    NSInteger colex = 1;

    

    if(sqlite3_prepare_v2(db,[query UTF8String],-1, &statement, NULL) == SQLITE_OK)

{

while(sqlite3_step(statement) == SQLITE_ROW)

{

            

            colex = sqlite3_column_int(statement, 0);

        }

            sqlite3_finalize(statement);

    }


    if (colex == 0) {

        //최초로딩중입니다.


        //====== 5st

        

            [txtLabelUPdate setHidden:NO];

            NSString *bundlPath = [[NSBundle mainBundle] bundlePath];  // 번들 기초 경로

            NSString *plistPath = [bundlPath stringByAppendingPathComponent:@"dbUpdate.plist"];  //파일 경로

            NSDictionary *pListDefault = [NSDictionary dictionaryWithContentsOfFile:plistPath];  // 메모리에 캐쉬 방지 위해 1회성 파일로 읽기 ...

            NSArray *update_array = [pListDefault objectForKey:@"DB_v1.0_update_5st"];

            

            ProjectAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

            

            sqlite3* db = [delegate GetDB];

            sqlite3_stmt *statement = nil;

            

            NSString *query = @"";

            for (int i = 0; i < [update_array count]; i++) {

                

                query = [update_array objectAtIndex:i];

                

                if(sqlite3_prepare_v2(db,[query UTF8String],-1, &statement, NULL) == SQLITE_OK)

                {

                    if(sqlite3_step(statement) == SQLITE_DONE)

                    {

                        sqlite3_reset(statement);

                    }

                    

                    sqlite3_finalize(statement);

                }

                

            }

                    [txtLabelUPdate setHidden:YES];

     

    }

반응형