AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken jpeg in firebird-blob speichern
Thema durchsuchen
Ansicht
Themen-Optionen

jpeg in firebird-blob speichern

Ein Thema von rgaustria · begonnen am 15. Nov 2010 · letzter Beitrag vom 15. Nov 2010
Antwort Antwort
rgaustria

Registriert seit: 22. Jun 2009
6 Beiträge
 
#1

jpeg in firebird-blob speichern

  Alt 15. Nov 2010, 14:52
Datenbank: firebird • Version: 1.5 • Zugriff über: delphi 5
liebe kollegen,

bitte nicht gleich brüllen "hättest mal die suche strapaziert". glaubt mir, ich habe zur genüge gesucht und gegooglet aber leider keine antwort auf mein problem gefunden. ich möchte ein jpg in einer firebird-db speichern. ist soweit ja nicht unbedingt da problem, aber ich bekomme beim kompilieren des programmes (source etwas später unten) den fehler "Undefinierter Bezeichner 'TBlobTYpe'" und ich weiß leider nicht warum. der fehler tritt bei der zeile "uex.logos_sql.ParamByName('logo').LoadFromStream( s, TBlobType(0));" auf.

hier nun der source-code:
Delphi-Quellcode:
procedure TForm28.Button1Click(Sender: TObject);
var logo_name: string;
    s: TMemoryStream;
    pic: TJpegImage;

begin

    logo_name := FileListBox1.FileName;

    uex.logos_sql.SQL.Clear;
    uex.logos_sql.SQL.Add('insert into tmwarz_logos (record_id, tmuaktz, tmvst, tmguedat, tmlogo');
    uex.logos_sql.SQL.Add('values(:record_id, :wznr, :vst, :guedat, :logo');
    uex.logos_sql.ParamByName('record_id').asinteger := 0;
    uex.logos_sql.ParamByName('wznr').asinteger := uex.marken.FieldValues['tmuaktz'];
    uex.logos_sql.ParamByName('vst').AsString := uex.marken.FieldValues['tmvst'];
    uex.logos_sql.ParamByName('guedat').Asdatetime := date;

    pic := TJPEGImage.Create;
    pic.LoadFromFile(logo_name);
    s := TMemoryStream.Create;
    pic.SaveToStream(s);
    s.Position := 0;
    uex.logos_sql.ParamByName('logo').LoadFromStream(s, TBlobType(0));

    uex.logos_sql.Prepare;
    uex.logos_sql.ExecSQL;

    pic.Free;

    MessageBox(0,'Das Bild wurden erfolgreich hinzugefügt!','Nachricht',64);
end;

vorab schon herzlichen dank für eure unterstützung und liebe grüße
robert

Geändert von mkinzler (15. Nov 2010 um 14:58 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: jpeg in firebird-blob speichern

  Alt 15. Nov 2010, 14:56
Vielleicht so?? Hab grad keine IDE zu Hand, aber evtl. liegt hier schon der Fehler...

Delphi-Quellcode:
  [...]
  uex.logos_sql.ParamByName('logo').LoadFromStream(s , SizeOf(s));
  [...]
(1) Vergiss nicht, den TMemoryStream wieder freizugeben
(2) Hat TJpegImage keine Stream-Methoden integriert?!?
Michael Kübler

Geändert von scrat1979 (15. Nov 2010 um 14:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#3

AW: jpeg in firebird-blob speichern

  Alt 15. Nov 2010, 14:57
Hallo und Willkommen in der DP ,

TBlobType ist in der Unit DB deklariert, hast Du diese eingebunden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
rgaustria

Registriert seit: 22. Jun 2009
6 Beiträge
 
#4

AW: jpeg in firebird-blob speichern

  Alt 15. Nov 2010, 15:08
hallo detlef,

genau das war es - ich hatte leider die unit db nicht in meiner uses. manchmal ist man einfach wie total verbohrt - blickt direkt auf den fehler und sieht ihn trotzdem nicht!!!!

jedenfalls recht recht herzlichen dank für eure verdammt rasche unterstützung.

bis zum nächstenmal - liebe grüße
robert
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: jpeg in firebird-blob speichern

  Alt 15. Nov 2010, 15:18
Braucht es hier überhaupt den Umweg über ein MemoryStream und TJpgImage. Könnte man LoadFromStream hier nicht auf einen einfachen FileStream loslassen? Das File wird ja 1:1 im Blob gespeichert und u.U. durch pic.Save etwas schlechter in der Qualität.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz