我用的是下面的方法保存的,可就是不知道为什么以后从数据库中取出来的时候变成了乱码。
var BS:TADOBlobStream;
begin
ADOQuery.Edit();
BS:=TADOBlobStream.Create(TBlobField(ADOQuery.FindField('DocFile')),bmWrite);
try
If OLEContainer1.State<>osEmpty then
OLEContainer1.SaveToStream(BS);
finally
BS.free;
end;
ADOQuery.Post();
end;
var BS:TADOBlobStream;
begin
ADOQuery.Edit();
BS:=TADOBlobStream.Create(TBlobField(ADOQuery.FindField('DocFile')),bmWrite);
try
If OLEContainer1.State<>osEmpty then
OLEContainer1.SaveToStream(BS);
finally
BS.free;
end;
ADOQuery.Post();
end;
解决方案 »
- 如何捕获触发器中的错误
- 怎么诸行访问DBGrid
- 关于异常处理的问题
- 开发网络数据库可以不用tquery而用table吗
- 窗口显示的问题,请帮忙,多谢~~~~~
- 我在Delphi中怎样做一个ActiveX控件,在VFP中能调用。我不知该选哪个VCL基类。
- 谁会呀
- 如何让DBGridEh的某个字段根据一定的条件来显示数据?
- 关于局域网软件的问题?急、急!
- 如何在一个MDIForm中以ChildForm形式调用一个已有的Form?我将该form的属性改为MDIChild,结果编译不了。不该的话,又不是作为ChildForm调
- 我有一个比较简单的问题!
- 怎样得到使用的操作系统???GetVersion(Ex)不行?(在Win2000下)
with DM.ADODocList do
begin
DocFile:=ExtractFilePath(Application.ExeName)+FieldValues'DocTypeFileName']+FieldValues['DocID']+FieldValues['DocType'];//临时文件名
with TADOBlobStream.Create(TBlobField(FindField('DocFile')), bmRead) do
begin
if Size<>0 then
SaveToFile(DocFile);
Free;
end;
end;
OLEContainer1.DestroyObject();
OLEContainer1.CreateObjectFromFile(DocFile, False); //取文档
OLEContainer1.DoVerb(ovShow);