RSS registrovat login
Navigace: předchozí stranaúvodní strana
Čtení a zápis binárních dat do databáze v Delphi

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...

// ulozeni do db pres blobStream
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
;
// nacteni z db
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:
// fragment kodu na ulozeni do db pres parametry
Query.SQL.text:=
'insert into tabulka(data,cesta) values(:data,'''
+fileName+
''')'
; param:=Query.parameters.Items[
0
];
// tady muze byt i dohledani pres nazev
param.LoadFromFile(fileName,ftBLOB);
// melo by samozrejme fungovat i asString atd
Query.ExecSQL;

Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com


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
přečteno: 4140x

Komentáře:

- vložil 23.7.2005 20:52:35

var
string
int integer void main
function
yeaaaaah()
{ fooo() :)) }

Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com


Přidat komentář:
Jméno
E-mail
Web
Titulek
Obsah
thomas sabo rea mbt outlet thomas sabo charms sale louis vuitton taschen kaufen thomas sabo boutique mbt kaufen