Du musst den String vor der Übergabe an die
DB escapen:
Delphi-Quellcode:
// erzeugt einen esc-String mit den Bitmap-Daten, muss selbst freigegeben werden!
Function TMainFrm.CreateBitmapString(Bitmap: TBitmap):Pointer;
Var EscMem: Pointer;
Begin
ImageStream.Clear;
// Image Stream ist ein TMemoryStream
Bitmap.SaveToStream(ImageStream);
GetMem(EscMem,ImageStream.Size*2+1);
//Puffer doppelt so groß wie das Bild
mysql_real_escape_string(
DB.ConHandle,EscMem,ImageStream.Memory,ImageStream.Size);
Result := EscMem;
End;
So wird es benutzt:
Delphi-Quellcode:
Var EscString: PChar;
EscString :=
Nil;
If Not(Image.Empty)
Then
EscString := CreateBitmapString(Image);
Try
// in die DB schreiben
...
Finally
If Assigned(EscString)
Then
FreeMem(EscString);
End;
Gruß, teebee