Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#41

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

  Alt 14. Mär 2012, 09:01
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
  Mit Zitat antworten Zitat