gpt4 book ai didi

iphone - 如何将 sqlite3_column_blob 与 NSData 一起使用

转载 作者:行者123 更新时间:2023-12-03 18:31:45 24 4
gpt4 key购买 nike

如何使用带有 NSData 的 sqlite3_column_blob 我需要传递什么参数

在我的 iPhone 应用程序中,我想在 BLOB 数据类型的 sqlite 数据库中检索以 NSData 格式存储的图像
为了恢复它

    //select query

NSString *selectQuery = [NSString stringWithFormat:@"select image_column from tbl_image where id=1"];
NSArray *arraySelect = [database executeQuery:selectQuery];


//displaying image

NSData *imageData = [[arraySelect objectAtIndex:0] valueForKey:@"image_column"];
self.img3=[UIImage imageWithData:imageData];
imageView.image=img3;


从上面的代码我无法显示图像
所以请帮助和建议

谢谢

最佳答案

  sqlite *database;
sqlite3_stmt *Stmt;
sqlite3_open([[self getDBPath] UTF8String],&database)
- (NSString *) getDBPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"XXX.sqlite"];
}

NSData*thumbnailData;

//插入缩略图数据
  NSString *lSQL = [NSString stringWithFormat:@"insert into Table(Thumbnail1) values(?)"];

if(sqlite3_prepare_v2(database, [lSQL UTF8String], -1, &Stmt, NULL) == SQLITE_OK)
{
sqlite3_bind_blob(Stmt, 1,[thumbnailData bytes], [thumbnailData length], NULL);
sqlite3_step(Stmt);
sqlite3_reset(Stmt);
if(Stmt)
sqlite3_finalize(Stmt);
}

//获取缩略图数据
 NSString *lSQL = [NSString stringWithFormat:@"select Thumbnail1 from table"];

if(sqlite3_prepare_v2(database, [lSQL UTF8String], -1, &Stmt, NULL) == SQLITE_OK)
{
while(sqlite3_step(Stmt) == SQLITE_ROW)
{
NSString *myColNameNSString = [NSString stringWithFormat:@"%s", sqlite3_column_name(Stmt)];
if ([myColNameNSString isEqualToString:@"Thumbnail1"])
{
thumbnailData = [[NSData alloc] initWithBytes:sqlite3_column_blob(Stmt) length:sqlite3_column_bytes(Stmt)];
}
}
}

关于iphone - 如何将 sqlite3_column_blob 与 NSData 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com