Autor Beitrag
mambo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Win XP
D6 Prof
BeitragVerfasst: Fr 21.11.03 10:16 
Hallo !
Ich habe folgendes Problem:
ich weiß zwar, wie man JPG oder BMP-Bilder in Blob Felder schreibt und liest (ist hier ja auch oft beschrieben), aber wie kann ich ein Bild unabhängig vom Format in ein DB-Blob-Feld speichern?

Ich wähle ein Bild aus (mit dem ImageDialog) und speichere es in die DB:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  bs: TBlobStream;
begin

  Query.Edit;

  with Query do
  begin
   bs := TBlobStream(CreateBlobStream(TBlobField(FieldByName('LOGO')),bmWrite));
  end;

  LOGO.Picture.Graphic.SaveToStream(bs);

  bs.Free;
end;


dabei ist ja egal, welches format die grafik hat (JPG,BMP o.a.)

Will ich jedoch das Bild aus der DB laden, muß ich ja wissen, was für ein Format es hat, oder ? ich mach das so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
          bs := TBlobStream(Query.CreateBlobStream(Query.Fieldbyname('MyBlob'), bmRead));
          jp := TJPegImage.Create;
          jp.LoadFromStream(bs);
          Image.Picture.Assign(jp);
          bs.Free;
          jp.Free;

hier kommt mir immer ein Fehler JPG-Fehler #41

wie kann ich aber unabhängig vom Bildformat das Bild dem Image zuweisen ? Ich weiß ja nicht, wann im Feld ein JPG, wann ein BMP ist.

Für eure hilfe wäre ich sehr dankbar
heinz

_________________
Es ist besser, Genossenes zu bereuen, als dass man nichts genossen hat.
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 21.11.03 10:54 
Nimm ein Zusätzliches Feld, in dem du den Dateinamen und/oder Typ reinschreibst.

Übrigens kann man das noch einfacher Machen:
Query.Fieldname.loadfromFile() bzw
Query.Fieldname.saveToFile().

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 21.11.03 11:40 
Ich würde mal versuchen, die Unit JPEG in die uses-Liste aufzunehmen. Das dürfte genügen.

_________________
Gruß
Hansa
DaWi2000
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 18.05.04 19:24 
Zitat:
Nimm ein Zusätzliches Feld, in dem du den Dateinamen und/oder Typ reinschreibst.

Übrigens kann man das noch einfacher Machen:
Query.Fieldname.loadfromFile() bzw
Query.Fieldname.saveToFile().

grez
msch

:arrow:
Aber das finde ich leider auch nicht... bei einer TQuery-Komponente gibt es doch gar kein loadfromfile() oder etwa doch ???

Klärt mich doch bitte auf... :?: :?: :?:

Gruß

DaWi2000