请教各位高手:一个关于数据库blob字段读出的问题,谢谢!

fangcun 2003-06-14 10:25:18
我已经将一个word文件存入数据库的Blob字段,但将其读出存为word文件后,再用word打开却出现乱码。请教是何原因,谢谢!代码如下:

Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select ARCH_ATTACH from ARCH_ATTACH where
ARCH_ID= '1'");
Query1->Open();

TBlobField* blob;
if( Query1-> Eof == false)
{
if( Query1 -> FieldByName("ARCH_ATTACH") -> IsNull == false)
{

blob = (TBlobField*)(Query1 -> FieldByName("ARCH_ATTACH"));
blob -> SaveToFile("C:\\1.doc");
}
}
}
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangcun 2003-06-16
  • 打赏
  • 举报
回复
试过TBlobStream*,还是不行,我又调试了一下,发现存入数据库的信息本身就是乱码,但字节数是正确的。blob->Value一直是{ "邢\x11唷?\xE1"},这个问题该怎么解决,谢谢
Deffed 2003-06-16
  • 打赏
  • 举报
回复
->Value可能对二进制数据无效,最好按字节读入TMemoryStream,然后利用TMemoryStream->SaveFile()方法,存入新的文件。
fangcun 2003-06-14
  • 打赏
  • 举报
回复
再请教wyb_45:非常感谢你的回答,我使用的是BDE链接,但WORD文件很小,只有20K左右,为什么还是有这种问题呢?
wyb_45 2003-06-14
  • 打赏
  • 举报
回复
如果是使用的是BDE连接,需要将BDE的blob的缓存设置得大一些4M右。
否则,存入的blob数据是32k。
Deffed 2003-06-14
  • 打赏
  • 举报
回复
试试看用TBlobStream*行不行?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧