2015년 9월 4일 금요일

sqlite3에서 쿼리한결과 array로 리턴

+ (NSMutableArray *)doGetWordInfo:(NSString *)queryString
{
    NSMutableArray *entries=[[NSMutableArray alloc] init];
    const char *query_stmt = [queryString UTF8String];
    sqlite3_stmt    *statement;
    
    if (sqlite3_prepare_v2(gTheDb, query_stmt, -1, &statement, NULL) == SQLITE_OK)
    {
        int columnCount = sqlite3_column_count(statement);
        
        while (sqlite3_step(statement) == SQLITE_ROW)
        {
            NSMutableDictionary *entryDic = [[NSMutableDictionary alloc] init];
            
            for (int columnIndex=0; columnIndex<columnCount; columnIndex++) {
                NSNumber *tmpNumberValue=nil;
                NSString *tmpStringValue=@"";
                
                NSString *columnName = [NSString stringWithUTF8String:(const char *) sqlite3_column_name(statement, columnIndex)];
                
                int columnType = sqlite3_column_type(statement, columnIndex);
                if (columnType == SQLITE_INTEGER) {
                    tmpNumberValue =[NSNumber numberWithInt: sqlite3_column_int(statement, columnIndex)];
                    [entryDic setValue:tmpNumberValue forKey:columnName];
                } else if(columnType == SQLITE_TEXT) {
                    tmpStringValue = [NSString stringWithUTF8String:(const char *) sqlite3_column_text(statement, columnIndex)];
                    [entryDic setValue:tmpStringValue forKey:columnName];
                }
            }
            
            [entries addObject:entryDic];
            entryDic = nil;
        }
    }
    sqlite3_finalize(statement);
    return entries;

}