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