Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Image in MySQL Datenbank speichern (https://www.delphipraxis.net/72479-image-mysql-datenbank-speichern.html)

CReber 1. Jul 2006 00:24

Datenbank: MySQL • Version: 5.0.21 • Zugriff über: mysql.pas

Image in MySQL Datenbank speichern
 
Hallo,

ich habe mir heute mal durch das MySQL Tutorial von Luckie gewuselt und hab das System eigentlich schon ganz gut verstanden. Mithilfe der MySQL Dokumentation habe ich einige Wünsche problemlos umsetzen können, nur jetzt scheint es doch wieder an einem Denkanstoß zu fehlen...

Bisher habe ich alle Querys (bisher nur Text) über folgende Prozedur eingetragen:

Delphi-Quellcode:
function TForm1.InputMySQLQuery(const Query: string) : Boolean;
begin
  //ShowMessage(Query);
  Result := True;
  iErrorCode := mysql_real_query(Descriptor, PChar(Query), Length(Query));
  if iErrorCode <> 0 then
  begin
    Result := False;
    LogThis(mysql_error(Descriptor));
  end;
end;

Nun möchte ich aber ein Image in der Datenbank speichern. Maximal dürften es 150 werden und nicht mehr.... Ich überlege noch, ob es nicht doch effektiver ist, die Bilder über FTP hochzuladen und in einem Ordner zu speichern... Aber mir würde trotzdem interessieren, wie das machbar ist.


Als Datentyp hab ich immer nur irgendwas von Blob gelesen, aber das bringt mich nicht weiter...

Danke für Eure Hilfe!

mkinzler 1. Jul 2006 06:53

Re: Image in MySQL Datenbank speichern
 
Ein Blob ist die richtige Wahl. BLOB steht für Binary Large OBject. Ich habe bisher nur mit älteren Versionen von MySQL gearbeitet, die keine Blobs unterstützt haben und dort die Bilder BASE&$-enoded in VARCHAR-Felder geschrieben.

Jelly 1. Jul 2006 09:25

Re: Image in MySQL Datenbank speichern
 
Mit geeigneten Komponenten (z.B. MyDAC) und dem richtigen Datentyp (z.b. longblob) unter MySQL geht das in Delphi ziemlich spielend:
var
Delphi-Quellcode:
 BF : TBlobField ;
begin
    with myquery do begin
        Insert ;
        BF := FieldByName('bild') as TBlobField ;
        BF.LoadFromFile('meinbild.jpg');
       Post ;
    end ;
end;

CReber 2. Jul 2006 18:52

Re: Image in MySQL Datenbank speichern
 
Und wo geb ich da jetzt die Tabelle an?

mkinzler 2. Jul 2006 19:02

Re: Image in MySQL Datenbank speichern
 
In der Query oder Table-Komponente.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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