紧急求助 ( 积分: 100 )

  • 主题发起人 主题发起人 ww10326
  • 开始时间 开始时间
W

ww10326

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]我用OleContainer控件导入word文档,里面有文字/图表/图象,
数据库中用text字段保存word文档,现在导入数据库都没有问题,就是从text字段中生成文件报错,代码如下:
读入:
var
mf:TFileStream;
begin
if(opendlg.FileName='') then
opendlg.Execute;
if(opendlg.FileName<>'') then
mf:=TFileStream.Create(opendlg.FileName,fmOpenRead )
else
begin
mf.Free;
exit;
end;
mf.Position:=0;
try
if dm.ads_attachment.State=dsBrowse then
dm.ads_attachment.Edit;
TBlobField(dm.ads_attachment.FieldByName('attach')).LoadFromStream(mf);
finally
mf.Free;
end;
try
dm.ads_attachment.Post;
except
application.MessageBox('附件保存出错,请重新导入保存','提示!',mb_ok);
exit;
end;
application.MessageBox('附件保存成功','提示!',mb_ok);
end;
以上没有出错,
显示
var
sfilename:string;
bs:Tadoblobstream;
begin
bs:=Tadoblobstream.Create(TBLOBfield(dm.ads_attachment.FieldByName('attach')),bmread);
try
sfilename:=extractfilepath(application.ExeName)+trim(dm.ads_attachment.fieldbyname('文件名').AsString);
sfilename:=sfilename+'.'+'doc';
bs.SaveToFile(sfilename);//改句报错
olecontainer1.CreateObjectFromFile(sfilename,false);
OleContainer1.Iconic:=false;
finally
bs.free;
end;
end;
如果保存的是文本文件或者记事本文件不出错,如果是word文件则语句olecontainer1.CreateObjectFromFile(sfilename,false)报错出现office安装界面,而bs.SaveToFile(sfilename)生成的word文件好像是二进制文件,里面都是乱码,好像是word格式问题,不知道如何解决,哪位高人指点一下...
 
[:(]我用OleContainer控件导入word文档,里面有文字/图表/图象,
数据库中用text字段保存word文档,现在导入数据库都没有问题,就是从text字段中生成文件报错,代码如下:
读入:
var
mf:TFileStream;
begin
if(opendlg.FileName='') then
opendlg.Execute;
if(opendlg.FileName<>'') then
mf:=TFileStream.Create(opendlg.FileName,fmOpenRead )
else
begin
mf.Free;
exit;
end;
mf.Position:=0;
try
if dm.ads_attachment.State=dsBrowse then
dm.ads_attachment.Edit;
TBlobField(dm.ads_attachment.FieldByName('attach')).LoadFromStream(mf);
finally
mf.Free;
end;
try
dm.ads_attachment.Post;
except
application.MessageBox('附件保存出错,请重新导入保存','提示!',mb_ok);
exit;
end;
application.MessageBox('附件保存成功','提示!',mb_ok);
end;
以上没有出错,
显示
var
sfilename:string;
bs:Tadoblobstream;
begin
bs:=Tadoblobstream.Create(TBLOBfield(dm.ads_attachment.FieldByName('attach')),bmread);
try
sfilename:=extractfilepath(application.ExeName)+trim(dm.ads_attachment.fieldbyname('文件名').AsString);
sfilename:=sfilename+'.'+'doc';
bs.SaveToFile(sfilename);//改句报错
olecontainer1.CreateObjectFromFile(sfilename,false);
OleContainer1.Iconic:=false;
finally
bs.free;
end;
end;
如果保存的是文本文件或者记事本文件不出错,如果是word文件则语句olecontainer1.CreateObjectFromFile(sfilename,false)报错出现office安装界面,而bs.SaveToFile(sfilename)生成的word文件好像是二进制文件,里面都是乱码,好像是word格式问题,不知道如何解决,哪位高人指点一下...
 
字段类型不对,应该用image类型,或者OLE类型
 
字段类型不对? 我记得text字段也可以保存文件的呀.并且我保存txt和rtf文件都没有问题呀,只有word文件出现问题,
 
问题解决了,还真是字段的问题,不过我以前用text字段保存exe和pbd文件的时候都可以,word不知道是怎么回事,可能是格式的问题吧,在此谢谢yeskert1...
 
后退
顶部