Hallo Martin.
Ohne Anspruch auf Schönheit - habe nur die nötigen Verbiegungen an deinem Code durchgeführt:
Delphi-Quellcode:
unit Strings;
interface
uses
SysUtils;
function Replace(s, old, new: PChar): PChar;
cdecl;
export;
implementation
function Replace(s, old, new: PChar): PChar;
begin
Result := PChar(StringReplace(
String(S),
String(Old),
String(New), [rfReplaceAll]));
end;
end.
Und natürlich muss die UDF noch der Datenbank bekannt gemacht werden:
SQL-Code:
DECLARE EXTERNAL FUNCTION REPLACE /* ANSIUPPER */
CSTRING(100), CSTRING(100), CSTRING(100)
RETURNS CSTRING(100) FREE_IT
ENTRY_POINT 'Replace' MODULE_NAME 'MyFirebirdUDFs'
Anstelle in das BIN-Verzeichnis solltest du die library in das UDF-Verzeichnis von FireBird schieben.
Getippt und nicht getestet.
Grüße vom marabu
Edit: Es muss REPLACE heißen, nicht ANSIUPPER