Einzelnen Beitrag anzeigen

CarstenH

Registriert seit: 18. Feb 2006
18 Beiträge
 
Delphi 7 Professional
 
#38

AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken

  Alt 13. Mär 2012, 18:31
Ich habe das Tutorial (sehr gut, danke!) erfolgreich in ein kleines Testprogramm umgesetzt. Nun möchte ich eine Datei als Binärdaten speichern und bekomme es nicht hin.

Ich habe mit HeidiSQl ein Blobfeld in der Tabelle angelegt und schaffe es auch, bmp-Dateien reinzuschreiben, aber diese kommen nicht immer vollständig an. Ich tippe mal, dass es ein Problem mit nullterminierten Strings ist. Folgendermaßen bin ich vorgegangen und wäre für Tipps dankbar.

Carsten

Code:
var
  s: AnsiString;
  query: AnsiString;
  f: TFileStream;
  Fehler:longint;
 
begin
  f := TFileStream.Create(FLink, fmOpenRead + fmShareDenyWrite);
  try
    SetLength(s, f.Size);
    f.ReadBuffer(Pointer(s)^, Length(s));
  finally
    f.Free;
  end;
  query:='INSERT INTO dateien(typ,buffer) VALUES(''bmp'',' + QuotedStr(s) + ')';
 
  if FDescriptor<>nil then
  begin
    Fehler:=mysql_select_db(FDescriptor, PChar(FDBName));
    if Fehler = 0 then
    begin
      Fehler:=mysql_real_query(FDescriptor, PAnsiChar(query), length(query));
    end;
    if Fehler <> 0 then
    begin
      MessageDlg(mysql_error(FDescriptor), mtWarning, [mbOK], 0);
    end;
  end
  else beep;
end;
  Mit Zitat antworten Zitat