Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi datei in mysql tabelle (https://www.delphipraxis.net/110486-datei-mysql-tabelle.html)

Delphi-Phil 18. Mär 2008 21:24

Datenbank: MySql • Zugriff über: ADO

datei in mysql tabelle
 
Hallo,

wie kann ich eine Datei über eine Delphi Komponente in einer MySql Tabelle speichern?

Was verträgt eine MySql Tabelle so an größe?? Gibt es sowas wie Tabelle voll??



Gruß Phil

mkinzler 18. Mär 2008 21:25

Re: datei in mysql tabelle
 
Man kann Dateien in Blob-Felder schreiben.

Delphi-Phil 18. Mär 2008 21:28

Re: datei in mysql tabelle
 
wie macht sich das denn mit der größe und der daten?

womit kann man ein blob feld ansteuern??


gruß Phil

RWarnecke 18. Mär 2008 21:35

Re: datei in mysql tabelle
 
Warum so umständlich ? Ich würde die Dateien immer seperat speichern und nur den Pfad in die Datenbank schreiben.

Delphi-Phil 18. Mär 2008 21:38

Re: datei in mysql tabelle
 
wie lässt sich denn dieses speichern der daten am besten realisieren?

gibt es da ne komponente??

Gruß Phil

Peinhard 19. Mär 2008 07:25

Re: datei in mysql tabelle
 
Schau dir doch einfach mal die Methoden von TBlobField an...

Sharky 19. Mär 2008 08:07

Re: datei in mysql tabelle
 
Zitat:

Zitat von Delphi-Phil
wie lässt sich denn dieses speichern der daten am besten realisieren?. ..

Hai Phil,

Du kannst das über dein ADOQuery machen:
Delphi-Quellcode:
procedure TFRM_Objektdetails.ac_neuedateiExecute(Sender: TObject);
var
  daten: TBlobField;
  fstream: TMemoryStream;
  dataid: Integer;
begin
  if (OpenDialog1.Execute) then
  begin
    fstream := TMemoryStream.Create;
    try
      fstream.LoadFromFile(OpenDialog1.FileName);
      fstream.Position := 0;
      with Query1 do
      begin
        Close;
        SQL.Text := 'INSERT INTO dateien (dateiname,datum,daten) '
          + #10 +
          'VALUES (:dateiname,:datum, :pdatei)';
        ParamByName('datum').AsDate := now;
        ParamByName('dateiname').AsString := ExtractFileName(OpenDialog1.FileName);
        ParamByName('pdatei').LoadFromStream(fstream, ftBlob);
        ExecSQL;
        Close;
        SQL.Text := 'SELECT LAST_INSERT_ID()';
        Open;
        dataid := Fields[0].AsInteger;
      end;
    finally
      fstream.Free;
    end;
  end;
end;
Das hatte ich zwar mit den Zeos-Komponenten gemacht; aber mit den ADOs sollte es genau so gehen.

Zitat:

Zitat von Delphi-Phil
... Gibt es sowas wie Tabelle voll??

Klar,
irgendwann ist die Tabelle voll. Schau mal hier.

Delphi-Phil 19. Mär 2008 10:29

Re: datei in mysql tabelle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Moin,

beim compilieren bekomme ich folgenden fehler. ich habe mal ein screen angehangen!



Gruß Phil

DeddyH 19. Mär 2008 10:33

Re: datei in mysql tabelle
 
Bei ADO gibt es kein ParamByName. Schau Dir mal in der Hilfe die Eigenschaft Parameters von TADOQuery an.

Delphi-Phil 19. Mär 2008 10:59

Re: datei in mysql tabelle
 
aber das gibt es doch auch...


Delphi-Quellcode:
Qry.SQL.Text := 'insert into SchuelerFaecher (id_Schueler,id_Fach,id_Klasse) values (:SID, :FID, :KID)';
Qry.Parameters.ParamByName('SID').Value := SID;
Qry.Parameters.ParamByName('FID').Value := FID;
Qry.Parameters.ParamByName('KID').Value := KID;


gruß phil


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Seite 1 von 2  1 2      

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