从存储在iPhone App的Blob数据类型中的sqlite中检索nsdata

时间:2011-01-18 12:36:24

标签: iphone objective-c sqlite blob nsdata

在iPhone App中如何将UIImage转换为NSData转换为BLOB数据类型的sqlite表? 是否需要任何类型的绑定(NSData - > Blob)?

在sqlite Blob数据类型中检索以NSData形式存储的图像时, 我是否应该执行任何任务来将blob数据类型中存储的数据库转换回NSData形式?

请帮助并建议。

1 个答案:

答案 0 :(得分:9)

我使用过这样的东西:

// prepare sqlite3 statement before this line
int res = sqlite3_step(stmt);
if (res == SQLITE_ROW) {
    const void *ptr = sqlite3_column_blob(stmt, 0);
    int size = sqlite3_column_bytes(stmt, 0);
    data = [[NSData alloc] initWithBytes:ptr length:size];
    sqlite3_reset(stmt);

    return [data autorelease];
} 
sqlite3_reset(stmt);

要以blob格式保存,您可以使用[data bytes][data length]提取NSData的指针和大小。然后绑定到您的BLOB行

sqlite3_bind_blob (stmt, 2, [data bytes], [data length], SQLITE_TRANSIENT);