"Add image to sqlite3"

Mon 11 May 2009

-(BOOL)addImage:(UIImage *)imageItem{

int pegId = [self getNewjm_pegID];

if (!dbOpen) {

[self openDb];

}

NSString *insertProgrammeSql = @"INSERT INTO images (image) VALUES (?)";

sqlite3_stmt *statement;

if (sqlite3_prepare_v2(database, [insertProgrammeSql cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK) {

NSData *imageData = UIImagePNGRepresentation(pegItem.albumCover);

sqlite3_bind_blob(statement, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT);

sqlite3_step(statement);

}

[self closeDb];

return YES;

}

 

-(UIImage *)getImage{

if (!dbOpen) {

[self openDb];

}

UIImage *image = nil;

NSMutableArray *pegs = [[NSMutableArray alloc] init];

NSString *selectSql = @"SELECT image FROM images";

sqlite3_stmt *statement;

if (sqlite3_prepare_v2(database, [selectSql cStringUsingEncoding:NSUTF8StringEncoding], -1, &statement, NULL) == SQLITE_OK) {

int length = sqlite3_column_bytes(statement, 0);

NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(statement, 0 ) length:length];

UIImage *image = [UIImage imageWithData:imageData];

[pegs addObject:pegItem];

}

}

sqlite3_finalize(statement);

[self closeDb];

return image;

}