关于WORD在MSSQL中的存取问题!季老大及斑竹请留意!

Chimae 2002-08-20 10:22:29
如上所说,数据库是MSSQL、字段类型是Binary。请问我怎么将一个WORD文档存入数据库?又怎么将它取出来,可以是先生成临时WORD文件,也可以直接调用OLE打开?请大家帮忙!
存文件(没问题):
if(!OpenDialog1->Execute())
return;
TMemoryStream *tmpStream = new TMemoryStream();
tmpStream->LoadFromFile(OpenDialog1->FileName);
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO tblDocument (name,Doc) VALUES(:p_name,:p_Doc)");
Query1->ParamByName("p_name")->AsString = OpenDialog1->FileName;
Query1->ParamByName("p_Doc")->LoadFromStream(tmpStream,ftBlob);
Query1->ExecSQL();
delete tmpStream;
取文件(出错):
TMemoryStream *memStream = new TMemoryStream;
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select Doc from tblDocument");
Query1->Open();
TBlobField *tmpField = (TBlobField *)Query1->Fields->Fields[0];
tmpField->SaveToStream(memStream);
delete memStream;
请大家帮忙!谢谢!
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chimae 2002-08-20
  • 打赏
  • 举报
回复
季老大,超过32K的还是无法正常显示,听说MSSQL里面可以设定IMAGE字段的默认大小,而且我也看到了IMAGE的确可以存放2G大小的文件。不知怎么设置!
Chimae 2002-08-20
  • 打赏
  • 举报
回复
这个问题我也考虑过了,只是一开始用的是小型TXT文件,所以...呵呵!送分!
Chimae 2002-08-20
  • 打赏
  • 举报
回复
季老大就是季老大!我解决了!呵呵!
jishiping 2002-08-20
  • 打赏
  • 举报
回复
我查了一下SQL Server的资料,Binary只能存放8000个字节,所以字段类型
不能用Binary。你可以用image类型,程序不用做修改。由于我的机器上装的
是Win2000专业版,安装的SQL Server是Desktop版本,我发现image只能保存32K的字节(取出的文件最大为32K)。你用Win2000 Server版安装SQL Server,
看看能否存放大于32K的文件。

13,825

社区成员

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

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