sql := 'UPDATE tab SET BGZW=:file' + ' where XTAJBH=''' + case_id + ''''; execInt := DataModule_sys.ExecLobUpdate(sql, 'file', self.Edit_text.Text); //self.Edit_text.Text word 文档的路径和名称 // BGZW 数据库大字段
function TDataModule_sys.ExecLobUpdate(sql: string; LobName: string; FileName: string): Integer; begin try if self.ADOQuery1.Active then self.ADOQuery1.Close; self.ADOQuery1.Prepared := true; self.ADOQuery1.ParamCheck := true; self.ADOQuery1.SQL.Text := sql; ADOQuery1.Parameters.ParamByName(LobName).LoadFromFile(FileName, ftBlob); ADOQuery1.ExecSQL; result := self.ADOQuery1.ExecSQL; finally self.ADOQuery1.Prepared := false; self.ADOQuery1.ParamCheck := false; self.ADOQuery1.Close; end; // (ADOQuery1.FieldByName('aaa') as TGraphicField) end;
我试了一下,用如下代码可以解决问题了,同时谢谢楼上。 if opendialog1.Execute then begin with adoquery1 do begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Text:='insert into T_test(title,content) Values(:title,:content)'; Parameters.ParamByName('title').Value:=edit1.Text; Parameters.ParamByName('content').LoadFromFile(opendialog1.filename,ftBlob); ExecSQL; end; end;记录是有了,但是不知道怎么把文档读出来,content字段是文档的内容,我想用memo将内容显示出来,如何实现?
sql := 'UPDATE tab SET BGZW=:file' +
' where XTAJBH=''' + case_id + '''';
execInt := DataModule_sys.ExecLobUpdate(sql, 'file', self.Edit_text.Text);
//self.Edit_text.Text word 文档的路径和名称
// BGZW 数据库大字段
function TDataModule_sys.ExecLobUpdate(sql: string; LobName: string; FileName:
string): Integer;
begin
try
if self.ADOQuery1.Active then
self.ADOQuery1.Close;
self.ADOQuery1.Prepared := true;
self.ADOQuery1.ParamCheck := true;
self.ADOQuery1.SQL.Text := sql;
ADOQuery1.Parameters.ParamByName(LobName).LoadFromFile(FileName, ftBlob);
ADOQuery1.ExecSQL;
result := self.ADOQuery1.ExecSQL;
finally
self.ADOQuery1.Prepared := false;
self.ADOQuery1.ParamCheck := false;
self.ADOQuery1.Close;
end;
// (ADOQuery1.FieldByName('aaa') as TGraphicField)
end;
if opendialog1.Execute then begin
with adoquery1 do begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='insert into T_test(title,content) Values(:title,:content)';
Parameters.ParamByName('title').Value:=edit1.Text;
Parameters.ParamByName('content').LoadFromFile(opendialog1.filename,ftBlob);
ExecSQL;
end;
end;记录是有了,但是不知道怎么把文档读出来,content字段是文档的内容,我想用memo将内容显示出来,如何实现?
http://scalabium.com/
这个组件应该是免费的
Word_FileStream:=TMemoryStream.Create;
Word_FileStream.Position:=0;
保存到数据库的Image字段:
Word_FileStream.LoadFromFile('c:\wordfile.DOC');
TBlobField(AdoQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream);从数据库读取文件到本地硬盘:
TBlobField(ADOQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream);
Word_FileStream.SavetoFile('c:\wordfile.DOC');释放文件流:
Word_FileStream.Free;