Einzelnen Beitrag anzeigen

smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Umlaute in Interbase-Datenbank

  Alt 11. Nov 2005, 14:39
Datenbank: Interbase • Version: 6.1 • Zugriff über: egal
Hallo ,

bezugnehmend auf dieses Thema habe ich mich gefragt, wie sich das am Besten im Interbase umsetzen ließe.

Ich habe dafür folgende Stored Procedure angelegt:

SQL-Code:
CREATE PROCEDURE REPLACESPECIALCHARS (
    INCHAR VARCHAR(9999))
RETURNS (
    OUTCHAR VARCHAR(9999))
AS
DECLARE VARIABLE C CHAR(1) CHARACTER SET ISO8859_1;
DECLARE VARIABLE Z INTEGER;
begin
  Z=1;
  OUTCHAR='';
  while (Z<=STRLEN(INCHAR)) do
  begin
    C=SUBSTR(:INCHAR,Z,Z);
    if ((C='ä') or (C='Ä')) then
      OUTCHAR=:OUTCHAR||'ae';
    else
      if ((C='ö') or (C='Ö')) then
        OUTCHAR=:OUTCHAR||'oe';
      else
        if ((C='ü') or (C='Ü')) then
          OUTCHAR=:OUTCHAR||'ue';
        else
          if (C='ß') then
            OUTCHAR=:OUTCHAR||'ss';
          else
            OUTCHAR=:OUTCHAR||LOWER(:C);
    Z=Z+1;
  end
  suspend;
end
Das funktioniert auch. Meine Frage:

Wie könnte ich das ganze als UDF anlegen? Warum?
1. Ich möchte mir gern den ganzen Select-Kram beim Aufruf der Prozedur sparen
2. Ich erhoffe mir davon einen Geschwindigkeitsvorteil

Vielen Dank

René
  Mit Zitat antworten Zitat