Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Umlaute in Interbase-Datenbank (https://www.delphipraxis.net/56803-umlaute-interbase-datenbank.html)

smudo 11. Nov 2005 13:39

Datenbank: Interbase • Version: 6.1 • Zugriff über: egal

Umlaute in Interbase-Datenbank
 
Hallo :hi: ,

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é

DelphiDeveloper 13. Nov 2005 01:50

Re: Umlaute in Interbase-Datenbank
 
IMHO sind Stored Procedures performanter als UDfs.

mfg
DD


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz