Forum: Programmieren allgemein
by Flocke,
28. Jun 2005
Hab' noch mal nachgeschaut, es sollten 2*x+1 Zeichen Puffer ausreichen (ich dachte zuerst, dass die Funktion die benötigte Länge zurückliefert, wenn man den Parameter auf nil setzt).
So sollte es gehen:
function Tform1.escapestring(const str: String): String;
begin
SetLength(Result, 2 * Length(str) + 1);
SetLength(Result, mysql_escape_string(@Result, @str, Length(str)));
end;
Forum: Programmieren allgemein
by Flocke,
28. Jun 2005
Bin mir nicht 100%-ig sicher, aber ich denke mal es liegt daran, dass du schon einen String übergibst obwohl du die Länge nicht weisst. Probier mal diese Fassung (nicht getestet):
function Tform1.escapestring({const} str: String): String;
var len: integer;
begin
len := mysql_escape_string(nil, PChar(str), Length(str));
SetLength(Result, len);
mysql_escape_string(@Result, PChar(str),...