如何将word文档存入数据库再取出来然后在程序中打开! ( 积分: 100 )

  • 主题发起人 主题发起人 bbtwo33
  • 开始时间 开始时间
B

bbtwo33

Unregistered / Unconfirmed
GUEST, unregistred user!
现需要实现将word文档写入数据库 从数据库读取出word文档 将word文档显示在程序中并且能够编辑

使用OLE方法好象可以把word程序嵌到程序里 不知道怎么做

哪位高手 有比较完美的 例子代码啥的 能给提供下 !谢谢了
 
现需要实现将word文档写入数据库 从数据库读取出word文档 将word文档显示在程序中并且能够编辑

使用OLE方法好象可以把word程序嵌到程序里 不知道怎么做

哪位高手 有比较完美的 例子代码啥的 能给提供下 !谢谢了
 
).word文件传入和传出数据库。

uses IdGlobal;
procedure TdjhyForm.SpeedButton2Click(Sender: TObject);
var
sfilename:string;

function BlobContentTostring(const Filename:string):string;
begin
with Tfilestream.Create(filename,fmopenread) do
try
setlength(result,size);
read(pointer(result)^,size);
finally
free;
end;
end;
begin
if opendialog1.Execute then
begin
sfilename:=opendialog1.FileName;
DataModule1.ADOQuery14.Edit;
DataModule1.ADOQuery14.FieldByName('word').AsString:=blobcontenttostring(sfilename);
DataModule1.ADOQuery14.Post;
end;
end;

procedure TdjhyForm.SpeedButton1Click(Sender: TObject);
var
sfilename:string;
bs:Tadoblobstream;
begin
bs:=Tadoblobstream.Create(TBLOBfield(DataModule1.ADOQuery14.FieldByName('word')),bmread);
try
sfilename:=extractfilepath(application.ExeName)+trim(DataModule1.adoquery14.fieldbyname('hybh').AsString);
sfilename:=sfilename+'.'+'doc';
bs.SaveToFile(sfilename);
try
djhyopenform:=Tdjhyopenform.Create(self);
djhyopenform.olecontainer1.CreateObjectFromFile(sfilename,false);
djhyopenform.OleContainer1.Iconic:=true;
djhyopenform.ShowModal;
finally
djhyopenform.Free;
end;
finally
bs.free;
end;
end;
 
谢楼上高手!还剩下最重要的 显示和编辑功能!有了答案马上结帖给分!
 
procedure TFrm_sjgl.Action_dcdaExecute(Sender: TObject);
var
filename:string;
begin
//如果没有记录则退出程序
if DBGridEh1.DataSource.DataSet.RecordCount=0 then exit;

//导出答案
TBlobField(dm.ADOQ_sj.FieldByName('da_file')).SavetoFile(ExtractFilePath(ParamStr(0))+'/报表/mb_da.doc');
filename:=ExtractFilePath(ParamStr(0))+'报表/mb_da.DOC';
try
WordApplication1.Connect;
except
begin
Application.MessageBox('您还没有安装word系统!','提示',MB_OK+MB_ICONWARNING);
exit;
end;
end;
WordApplication1.Visible:=True;
OleVariant(WordApplication1.Documents).open(Filename);
WordApplication1.Disconnect;
// end;
end;
 
app2001 你第一个函数里的result是啥
 
函数的返值啊??????
 
啊!!!size是哪给的值啊!没看见有赋值啊!
 
这个函数我没测试过,你动手试一下看看??这个函数在老贴子中可是百用不鲜啊,那个SIZE是WINDOWS单元中的一个类型
在上面是这样介绍的,具体我讲不出这个道来
SIZE = Types.SIZE;
{$EXTERNALSYM SIZE}
 
这个我 不懂啊!有没有懂的大人给讲讲哈!
 
动手试一下嘛,这个才是硬道理啊
 
还有 在程序中用OLE方法打开 word 文档的方法啊! 谁知道啊!有没有好的例子啊!
 
参考一下这个吧,看这里
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=3187396
 
楼上的谢谢 可是我就想要有工具条的 !
 
不用谢,我就是送个仙女给你,你不动手的话,那也是白拿啊,无非就是这么些个语句,不动手,光想要又有什么用.
 
数据库读取的我已经在试了
 
Ole

var
filename: string;
begin
filename:=ExtractFilePath(ParamStr(0))+'报表/mb_da.DOC';
TBlobField(dm.ADOQ_sj.FieldByName('da_file')).SavetoFile(filename);
OleContainer1.CreateLinkToFile(filename,false);
OleContainer1.DoVerb(0);
end;
 
有没有个完整的例子啊!哎!急啊!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517

http://www.delphibbs.com/delphibbs/dispq.asp?lid=129808

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2377981

http://www.delphibbs.com/delphibbs/dispq.asp?lid=179901

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2507467
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部