Josef Koller
2005-04-06 16:15:42 UTC
Hallo,
ich komme einfach nicht recht weiter.Ich habe jetzt mit verschiedenen
Komponenten (IBO, ZEOS) versucht ein JPEG-bild in eine Firebird Datenbank
einzufügen.
Das Datenbankfeld ist folgendermassen definiert:
CREATE DOMAIN LOGO AS BLOB SUB_TYPE 0 SEGMENT SIZE 20480
Wenn ich mit folgendem code ein bmp-file einfüge klappt alles bestens.
procedure TForm1.Button3Click(Sender: TObject);
var bildstream:TMemoryStream;
Nummer:integer;
//bild:tjpegimage;
bild:tbitmap;
begin
if openpicturedialog1.execute then begin
//bild:=Tjpegimage.create;
bild:=tbitmap.Create;
bild.LoadFromFile(openpicturedialog1.FileName);
Nummer:=ztable4fir_schluessel.value;
end;
try begin
bildstream:=TMemoryStream.Create;
bild.SaveToStream(bildstream);
zquery1.SQL.Text:='Update T_Firma set LOGO = :ThePicture where
Fir_Schluessel = :Nummer ';
zquery1.Params.Clear;
zquery1.Params.CreateParam(ftblob,'ThePicture',ptinput);
zquery1.ParamByName('ThePicture').loadfromstream(bildstream, ftblob);
zquery1.Params.CreateParam(ftinteger,'Nummer',ptinput);
zquery1.ParamByName('Nummer').asinteger:=Nummer;
zquery1.ExecSQL;
ztable4.Refresh;
end;
finally
bildstream.free;
end;
end;
Wenn ich statt TBitmap für die Variable bild TJPEGImage nehme, bekomme ich
eine Fehlermeldung 'Bitmap ist ungültig'.
Könnt Ihr mir sagen, wie das Einfügen in Firebird und das Anzeigen des
JPEG-Bildes in einem DBImage richtig gemacht wird?
ich komme einfach nicht recht weiter.Ich habe jetzt mit verschiedenen
Komponenten (IBO, ZEOS) versucht ein JPEG-bild in eine Firebird Datenbank
einzufügen.
Das Datenbankfeld ist folgendermassen definiert:
CREATE DOMAIN LOGO AS BLOB SUB_TYPE 0 SEGMENT SIZE 20480
Wenn ich mit folgendem code ein bmp-file einfüge klappt alles bestens.
procedure TForm1.Button3Click(Sender: TObject);
var bildstream:TMemoryStream;
Nummer:integer;
//bild:tjpegimage;
bild:tbitmap;
begin
if openpicturedialog1.execute then begin
//bild:=Tjpegimage.create;
bild:=tbitmap.Create;
bild.LoadFromFile(openpicturedialog1.FileName);
Nummer:=ztable4fir_schluessel.value;
end;
try begin
bildstream:=TMemoryStream.Create;
bild.SaveToStream(bildstream);
zquery1.SQL.Text:='Update T_Firma set LOGO = :ThePicture where
Fir_Schluessel = :Nummer ';
zquery1.Params.Clear;
zquery1.Params.CreateParam(ftblob,'ThePicture',ptinput);
zquery1.ParamByName('ThePicture').loadfromstream(bildstream, ftblob);
zquery1.Params.CreateParam(ftinteger,'Nummer',ptinput);
zquery1.ParamByName('Nummer').asinteger:=Nummer;
zquery1.ExecSQL;
ztable4.Refresh;
end;
finally
bildstream.free;
end;
end;
Wenn ich statt TBitmap für die Variable bild TJPEGImage nehme, bekomme ich
eine Fehlermeldung 'Bitmap ist ungültig'.
Könnt Ihr mir sagen, wie das Einfügen in Firebird und das Anzeigen des
JPEG-Bildes in einem DBImage richtig gemacht wird?