比如我将C:\document\a.doc上传到数据库,然后下载并保存成c:\tmp\1.doc文件,但当我通过CreateOLEObject('Word.Application')打开时,同时打开了c:\tmp\1.doc和C:\document\a.doc。但是我并不需要打开C:\document\a.doc。各位给点办法!
代码如下:
保存文件到数据库:
MS := TMemoryStream.Create;
MS.LoadFromFile(Edit6.Text);
ssql:= 'select id,doc from table1 where id =***' ;
FSQLDataSet.CommandText := ssql;
FSQLDataSet.Open; FCDS.Close;
FCDS.Open;
FCDS.Edit;
TBlobField(FCDS.FieldByName('doc')).LoadFromStream(MS);
FCDS.Post;
FCDS.ApplyUpdates(0);
FCDS.Close;
FSQLDataSet.Close;
MS.Free;打开文件: docApp := CreateOLEObject('Word.Application');
docApp.Visible := True;
docApp.Documents.Open('c:\tmp\1.doc'); //每次当上传一个文件后,再执行该语句的时候都会打开两个文件。但如果不执行保存文件到数据库操作,就不会发生错误。
docApp := Unassigned;
另外还有一个问题就是不能上传大一点的文件,错误信息是MySQL has gone away,见
http://expert.csdn.net/Expert/topic/1874/1874503.xml?temp=3.652591E-02
代码如下:
保存文件到数据库:
MS := TMemoryStream.Create;
MS.LoadFromFile(Edit6.Text);
ssql:= 'select id,doc from table1 where id =***' ;
FSQLDataSet.CommandText := ssql;
FSQLDataSet.Open; FCDS.Close;
FCDS.Open;
FCDS.Edit;
TBlobField(FCDS.FieldByName('doc')).LoadFromStream(MS);
FCDS.Post;
FCDS.ApplyUpdates(0);
FCDS.Close;
FSQLDataSet.Close;
MS.Free;打开文件: docApp := CreateOLEObject('Word.Application');
docApp.Visible := True;
docApp.Documents.Open('c:\tmp\1.doc'); //每次当上传一个文件后,再执行该语句的时候都会打开两个文件。但如果不执行保存文件到数据库操作,就不会发生错误。
docApp := Unassigned;
另外还有一个问题就是不能上传大一点的文件,错误信息是MySQL has gone away,见
http://expert.csdn.net/Expert/topic/1874/1874503.xml?temp=3.652591E-02
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货