【发布时间】:2014-12-24 10:44:18
【问题描述】:
我正在尝试获取存储在 BLOB 中的图像,然后将其保存为 jpg。
在这里我检索二进制数据并将其保存在 str;
string str;
SQLCHAR buf[500] = {0};
while ((SQL_SUCCEEDED(SQLGetData(StmtHandle, colnum, SQL_C_BINARY, buf, sizeof(buf), NULL))))
{
string data(reinterpret_cast< const char* >(buf), reinterpret_cast< const char* >(buf) + sizeof(buf));
str = str + data;
}
然后我把它写在文件里
ofstream file;
file.open("C:\\Users\\tom\\Desktop\\img.jpeg");
file << str;
file.close();
我得到了不正确的图像。
这种数据提取方法有什么问题(我用this)?
【问题讨论】:
-
“我得到了不正确的图像。” 这不是您期望的图像?还是图片文件损坏了?
-
图像文件已损坏,无法打开,并且这个手动创建的文件的二进制数据与原始二进制数据不同