Tento příklad ukazuje, jak do db uložit binární data a zase je načíst a uložit do souboru. Na formuláři je komponenta Query (typu TAdoQuery), button1 zapíše data a button2 je znovu načte a uloží do souboru.
Poznámka: v databázi MSSQL je na výběr typ pole Image a Binary, ačkoliv to zní divně, použijte Image, binary má omezenou velikost na 8000 bytů, Image asi na 2GB
update
Ještě existuje možnost udělat to přímo přes parametry, viz další kód...
procedure
TForm1.Button1Click(Sender: TObject);
var
fileName:
string
;
param:TParameter;
begin
fileName:=
'c:\boot.jpg'
;
query.SQL.Text:=
'insert into files(name,data) values(''boot'',:data)'
;
param:=query.Parameters.ParamByName(
'data'
);
param.LoadFromFile(fileName,ftBlob);
query.ExecSQL;
ShowMessage(
'OK'
);
end
;
procedure
TForm1.Button2Click(Sender: TObject);
var
fileName:
string
;
field:TField;
data:TStream;
dataFile:TFileStream;
begin
fileName:=
'c:\boot_db.jpg'
;
query.SQL.Text:=
'select data from files where name=''boot'' '
;
query.Open;
field:=query.FieldByName(
'data'
);
data:=query.CreateBlobStream(field, bmRead);
dataFile:=TFileStream.Create(fileName,fmCreate);
dataFile.CopyFrom(data,data.Size);
dataFile.Free;
ShowMessage(
'OK'
);
end
;
Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com
kód používající parametry:
Informace ke stavu builder.cz zde
vytvořil Mi.Chal. 13.7. 2005 21:42, naposledy změněnil Mi.Chal. 9.5. 2006 13:04