samedi 10 octobre 2015

UITableview images from Sqlite database

I want to display images in tableview from sqlite, Here is my retrieve image from sqlite code. now how to implement in tableview pls guide me. or give some alternate solutions. Thanks in advance.

-(void) retrieveData{
sqlite3 * database;
NSMutableArray *prodnamemutable = [[NSMutableArray alloc] init];
NSMutableArray *prodpricemutable = [[NSMutableArray alloc] init];
NSMutableArray *prodimagemutable = [[NSMutableArray alloc] init];
NSString *databasename=@"contacts.sqlite";  // Your database Name.

NSArray * documentpath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSAllDomainsMask, YES);

NSString * DocDir=[documentpath objectAtIndex:0];

NSString * databasepath=[DocDir stringByAppendingPathComponent:databasename];

if(sqlite3_open([databasepath UTF8String], &database) == SQLITE_OK)
{
    const char *sqlStatement = "SELECT * FROM contacts";  // Your Tablename

    sqlite3_stmt *compiledStatement;

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
    {
        [prodnamemutable removeAllObjects];

        while(sqlite3_step(compiledStatement) == SQLITE_ROW)
        {

            [prodnamemutable addObject:[NSString stringWithFormat:@"%s",(char *) sqlite3_column_text(compiledStatement, 1)]];
            [prodpricemutable addObject:[NSString stringWithFormat:@"%s",(char *) sqlite3_column_text(compiledStatement, 3)]];

            int length = sqlite3_column_bytes(compiledStatement, 0);
            NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(compiledStatement, 0) length:length];
            [prodimagemutable addObject:imageData];
            NSLog(@"Length from db : %lu", (unsigned long)[imageData length]);
            imageArray = [NSArray arrayWithArray:prodimagemutable];
            NSLog(@"image found.%@",imageArray);
        }
    }
    nameArray = [[NSArray alloc]initWithArray:prodnamemutable];
    priceArray = [[NSArray alloc]initWithArray:prodpricemutable];
    NSLog(@"nameArray:%@",nameArray);
    [[self navigationController] tabBarItem].badgeValue = [NSString stringWithFormat:@"%lu",(unsigned long)[nameArray count]];
    sqlite3_finalize(compiledStatement);
    [self.tableView reloadData];

}
sqlite3_close(database);

}

Aucun commentaire:

Enregistrer un commentaire