Einzelnen Beitrag anzeigen

campula

Registriert seit: 17. Jan 2011
6 Beiträge
 
#1

Blob auslesen mit libmysql.dll

  Alt 5. Apr 2011, 12:09
Datenbank: mysql • Version: 5.0.51b • Zugriff über: libmysql.dll
Ich greife über die libmysql.dll auf meine mysql-Datenbank zu. Über google habe ich schnell eine Möglichkeit gefunden, darüber ein Bild in der Datenbank zu speichern. Das klappt alles wunderbar:
Code:
var
  s: AnsiString;
  query: AnsiString;
  f: TFileStream;
begin
  f := TFileStream.Create('test.jpg', fmOpenRead + fmShareDenyWrite);
  try
    SetLength(s, f.Size);
    f.ReadBuffer(Pointer(s)^, Length(s));
  finally
    f.Free;
  end;
  query := 'insert test set b=' + QuoteString(s);
  mysql.mysql_real_query(conn, PAnsiChar(query), Length(query));
end;
Aber wie bekomme ich das Bild da wieder raus? Ich habe es unter anderem so versucht:

Code:
  var
    _myRes: PMySQL_Res;
    query_string: string;
    Row : PMySQL_Row;
    Blob: TBlobField;
    f: TFileStream;

  begin
    f := TFileStream.Create('test2.jpg', fmCreate);
   
    query_string := 'select b from test;';
    mysql_real_query(_myCon, PAnsiChar(query_string), Length(query_string));
    _myRes := mysql_store_result(_myCon);
    Row := mysql_fetch_row(_myRes);
    f.WriteBuffer(Row[0],length(Row[0]));
  end;
Aber das funktioniert nicht. Hat jemand eine Idee, wie man den Blob wieder in eine Datei bekommt?

Mike
  Mit Zitat antworten Zitat