用Image类型存储数据 存入 if (OpenDialog1.Execute) then begin with Query do begin //Edit; TBlobField(FieldByName('files')).LoadFromFile(opendialog1.FileName); // Post; end; end; 取出: if (SaveDialog1.Execute) then begin with Query do begin TBlobField(FieldByName('files')).SaveToFile(SaveDialog1.FileName); end; end;
// 不管是WORD,EXCLE,还中JPG的都能用
// 注意打开文件时一定要先定位(即要先写sql 查询确定有个再打开 ),要不然会出错,还有就是临时文件的删除。。
// delphi 7+sql2000通过。。unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, shellapi,Buttons, OleCtnrs;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
ADOQuery1: TADOQuery;
OleContainer1: TOleContainer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
s:string;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if not ADOQuery1.Active then ADOQuery1.Open;
ADOQuery1.Append;
s :=ExtractFileName(OpenDialog1.FileName);
(ADOQuery1.FieldByName('doc') as TBlobField).LoadFromFile(OpenDialog1.filename);
ADOQuery1.Post;end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
(ADOQuery1.FieldByName('doc') as TBlobField).savetoFile(ExtractFileDir(Application.ExeName)+'\'+s);// (ADOQuery1.FieldByName('doc') as TBlobField).savetoFile('你要的路径' +s) ;
shellexecute(handle,nil,pchar(s),nil,nil,sw_shownormal);
end;end.
aqWord: TADOQuery;
//用Image字段存储数据
...
存入:
procedure TfrmWord.SaveWordToDB;
var
msWord: TMemoryStream;
begin
msWord := TMemoryStream.Create();
ocWord.SaveToStream(msWord);
msWord.Position := 0;
TBlobField(aqWord.FieldByName('fmsg')).LoadFromStream(msWord);
msWord.Free;
aqWord.Post;
aqWord.UpdateBatch();
end;
...
取出:
procedure TfrmWord.GetWordFromDB;
var
msWord:TMemoryStream;
begin
msWord := TMemoryStream.Create();
TBlobField(aqWord.FieldByName('fmsg')).SaveToStream(msWord);
msWord.position := 0;
ocWord.LoadfromStream(msWord);
msWord.Free;
ocWord.SaveAsDocument('d:\test.doc');
end;
if (OpenDialog1.Execute) then
begin
with Query do
begin
//Edit;
TBlobField(FieldByName('files')).LoadFromFile(opendialog1.FileName);
// Post;
end;
end;
取出:
if (SaveDialog1.Execute) then
begin
with Query do
begin
TBlobField(FieldByName('files')).SaveToFile(SaveDialog1.FileName);
end;
end;