Das geht in die Hosen
Delphi-Quellcode:
function IB_ExtractBetween(Value, A, B: PAnsiChar): PAnsiChar; cdecl; export;
begin
.....
if bPos > 0 then
begin
Result := PAnsiChar(AnsiString(Copy(tmpValue, aPos, bPos - aPos)));
// Problem
// sobald die Funktion verlassen wird zeigt "Result" auf ungültigen Speicher
// weil der temporäre AnsiString schon freigegeben wurde
end;
end;
end;
Gut möglich, dass das gewünschte Ergebnis immer noch dort im Speicher steht worauf "Result" zeigt.
Stabil ist das aber nicht.
Ich glaube, ich habe es nicht verstanden.
Wenn das nicht funktioniert, wie du sagst, dann dürfte das SELECT-Statement auch kein Resultat liefern, oder?
Das tut es aber. Lediglich das INSERT-Statement resultiert in dem o.g. Fehler
Ist mein Ansatz falsch? Hast du einen anderen Vorschlag für mich, der stabiler ist?