如何将文件写入数据库?请高手帮忙 ( 积分: 200 )

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

wj964124

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠,如何将DOC、XLS文件写入到数据库中,使用的是SQL Server 2000的数据库,并想问一下,数据库的字段应该定义成什么类型?
在Delphi中使用ADO组建中的ADOTABLE和ADOQUERY控件,如何进行数据库对文件的读取和写入?
我的设想是先将要写入数据库中的内容保存成本地文件(比如doc等),再将此文件写入到数据库中;读取是先将文件读出,存放在本地盘符上,再通过程序显示内容。(显示控件用的是HtmlEdit)
最好能代码解答,谢谢大家!
写入数据库中的内容有文字、图片等内容,
我觉得HtmlEdit这个也不是很好,还想问下大家,有没有能够直接象word这样编辑的控件?
请大家推荐一下!
 
varbinary/binary不過大小有限制
 
库中字段为Image型

procedure TForm1.btn1Click(Sender: TObject);
var
S:TMemoryStream;
begin
S:=TMemoryStream.Create;
S.LoadFromFile('a.txt');
S.Position:=0;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Append('INSERT INTO AA(A1) VALUES(:A1)');
Parameters.ParamByName('A1').LoadFromStream(S,ftBlob);
ExecSQL;
end;
FreeAndNil(S);
end;

procedure TForm1.btn2Click(Sender: TObject);
var
S:TMemoryStream;
begin
S:=TMemoryStream.Create;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Append('SELECT A1 FROM AA');
Open;
TBlobField(FieldByName('A1')).SaveToStream(S);
end;
S.SaveToFile('b.txt');
FreeAndNil(S);
end;
 
帮你顶吧,请高手给看一下!!
 
Image字段,最大好象可以保存4G大小的文件,参考liuchong的方法。
 
按照liuchong的方法,但是读出数据的时候不对啊。
procedure TForm1.DsFancyButton2Click(Sender: TObject);
var
S:TMemoryStream;
aa:string;
begin
aa:='11111';
S:=TMemoryStream.Create;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Append('SELECT leibie,co_name,wzbt,wznr FROM wbxxsj where co_name='''+aa+'''');
Open;
edit1.Text:=ADOQuery1.fieldbyname('leibie').AsString;
edit2.Text:=ADOQuery1.fieldbyname('co_name').AsString;
TBlobField(ADOQuery1.FieldByName('wznr')).SaveToStream(S);
htmledit1.LoadFromStream(S);
s.SaveToFile('c:/a.doc');
showmessage('OK!');
end;
FreeAndNil(S);
end;
htmledit控件没有反映! s.SaveToFile('c:/a.doc'); //都不能保存文件
好像是从 TBlobField(ADOQuery1.FieldByName('wznr')).SaveToStream(S);
开始就不对了,上面的语句能取出数据的。
 
检查你自己的代码吧
问题应该出在你自己的代码中
或是Image字段中根本没有数据。
 
问题已经解决了,谢谢大家,我现在结分了!!
 
后退
顶部