Entwickler-Ecke

Datenbanken - Dateien in Mysqltabelle laden


gnomecoder - Mi 07.04.10 13:20
Titel: Dateien in Mysqltabelle laden
Hi,
ist es möglich, und wenn ja wie ist es möglich, eine Datei in eine Mysqltabelle zu laden?
Habs mit ner filetostring funktion versucht.




Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function FileToString(const FileName: string): AnsiString;// inline; 
var 
  fs: TFileStream; 
  Len: Integer; 
begin 
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); 
  try 
    Len := fs.Size; 
    SetLength(Result, Len); 
    if Len > 0 then 
      fs.ReadBuffer(Result[1], Len); 
  finally 
    fs.Free; 
  end
end;


funktioniert damit aber nur teileweiße.
Mit einer Textdatei hat das super funktioniert, aber ne andere datei wurde nur zur hälfte hochgeladen.

Ich mache es übrigens so, vllt hats ja damit zu tun:

Delphi-Quelltext
1:
2:
q := 'INSERT into user SET feld = ''' + filetostring(dateiname) + '''';
 FResult := FMysql.query(q, true, ex);


Claudia_S - So 11.04.10 11:05

Hallo gnomecoder

Mit kleinen Dateien könntest du es so mal versuchen:


Delphi-Quelltext
1:
q := 'INSERT into user SET feld = '+QuotedStr( filetostring(dateiname));                    


Viele Grüße
Claudia


Delete - So 11.04.10 13:29

Was ist denn das für ein Datenbankfeld? Das Problem wird sein, dass in nicht Textdateien Steuerzeichen vorkommen, die von dem Datenbankfeld nicht akzeptiert werden.


gnomecoder - So 11.04.10 17:39

Danke für die Antworten.
sollte das nicht mit Blob felndern gehen?

Mache es jetzt erstmal mit ftp, ist wohl ohnehin sinnvoller. Vielleicht versuch ichs später nochmal mit mysql.


Delete - So 11.04.10 18:01

Du hast uns ja nicht verraten welchen Datentyp das Feld hat.

Aber wie bekommt man per FTP Daten in eine Datenbank?


Webo - So 11.04.10 18:25

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Aber wie bekommt man per FTP Daten in eine Datenbank?

Vermutlich gar nicht, ich denke mir, die Dateien werden dann einfach hochgeladen und liegen dann auf dem Server. Im Falle, dass es doch geht, wäre ich mal sehr gespannt, wie das aubläuft ;-)