Я хочу сохранить данные изображения в моей базе данных sqlite, но я не могу это сделать ...
- (void) SaveData: (Article*) article :(NSMutableArray*) rssList
{
sqlite3_stmt *statement;
if (sqlite3_open([self.dataBasePath UTF8String], &articlesDB) == SQLITE_OK)
{
NSString* sqlFormat = @"INSERT INTO ARTICLES (guid, title, summary, mainLink, pubDate, author, imageLink, body, favorites, smallImage) VALUES ('%@', '%@', '%@', '%@', '%@', '%@', '%@', '%@', '%@', ?)";
// Correct summary.
NSString* summary = [NSString stringWithString:article.summary];
summary = [summary stringByReplacingOccurrencesOfString:@"'" withString:@"''"];
// Correct title
NSString* title = [NSString stringWithString:article.title];
title = [title stringByReplacingOccurrencesOfString:@"'" withString:@"''"];
// Correct Body
NSString* body = [NSString stringWithString:article.body];
//body = [body stringByReplacingOccurrencesOfString:@"'" withString:@"''"];
// Create Insert SQL query.
NSString* insertSQL = [NSString stringWithFormat:sqlFormat, article.guid, title, summary, article.mainLink, article.pubDate, article.author, article.imageLink, body, article.favorite ? @"YES" : @"NO"];
// Add to database.
sqlite3_prepare_v2(articlesDB, [insertSQL UTF8String], -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
// Add to list.
[rssList addObject:article];
// Write Log.
NSLog( @"Article added ... " );
}
else
{
NSLog( @"Failed to add article. Error is: %s", sqlite3_errmsg(articlesDB) );
}
sqlite3_finalize(statement);
sqlite3_close(articlesDB);
}
}
Вы видите, что у меня есть запрос, и в конце у меня есть smallimage и value (?)
@"INSERT INTO ARTICLES (guid, title, summary, mainLink, pubDate, author, imageLink, body, favorites, smallImage) VALUES ('%@', '%@', '%@', '%@', '%@', '%@', '%@', '%@', '%@', ?)";
У меня есть функция, которая должна обновлять значение изображения где-то в моей программе: в этой функции я выбираю строку с URL-адресом ссылки на изображение, когда пытаюсь записать данные в последний столбец «SMALLIMAGE», нобезрезультатно ... Когда я открываю файл базы данных в редакторе, я вижу в последней строке только "NULL", как будто мои данные не сохранены ...
- (void) SaveSmallImage: (NSData*) imgData :(NSString*) mainUrl
{
if (sqlite3_open([self.dataBasePath UTF8String], &articlesDB) == SQLITE_OK)
{
NSString* sqliteQuery = [NSString stringWithFormat:@"SELECT * FROM ARTICLES WHERE IMAGELINK = '%@'", mainUrl];
sqlite3_stmt* statement;
if( sqlite3_prepare_v2(articlesDB, [sqliteQuery UTF8String], -1, &statement, NULL) == SQLITE_OK )
{
sqlite3_bind_blob(statement, 9, [imgData bytes], [imgData length], SQLITE_TRANSIENT);
sqlite3_step(statement);
}
else
{
NSLog( @"SaveBody: Failed from sqlite3_prepare_v2. Error is: %s", sqlite3_errmsg(articlesDB) );
}
// Finalize and close database.
sqlite3_finalize(statement);
sqlite3_close(articlesDB);
}
else
{
NSLog(@"SaveSmallImage: Failed from sqlite3_open. Error is: %s", sqlite3_errmsg(articlesDB) );
}
}
Кто может сказать мне, что я делаю неправильно...