Dans la version 3 de Firebird, une des nouveauté importante c'est l'implémentation des fonctions.

Les fonctions ne remplace pas les UDFs mais viennent combler un vide important dans FirebirdSQL 2.5.2.

par exemple, en créant cette fonction ci-dessous:

CREATE Function fnCamelCase(NAME varchar(255))
returns varchar(255)
as
declare function ICamel(CAMEL_NAME VARCHAR(255), CurrentPosR INT, NextPosR int)
returns varchar(255)
AS
begin
 while (position(' ', :CAMEL_NAME,  :CurrentPosR) > 0) do begin
        NextPosR = position(' ', CAMEL_NAME,  CurrentPosR);

CAMEL_NAME = left(:CAMEL_NAME, :NextPosR-1)

|| ' '

|| upper(substring(:CAMEL_NAME from :NextPosR+1 for 1))

|| substring(:CAMEL_NAME from :NextPosR+2 for char_length(CAMEL_NAME));

         CurrentPosR = NextPosR+1;
 end
 return :CAMEL_NAME;
 
end
 begin
 
    NAME = lower(NAME);
    NAME = upper(left(NAME, 1)) || substring(:NAME from 2 for char_length(NAME));
 return  ICamel(NAME,1,0);
 
 end

 

Vous ne devez plus faire un (select * from <la procédure>) mais vous pouvez appeler directement fnCamelCase('la ligne à modifier') dans vos views, procedures, select et autre.

Vous remarquerez que la déclaration de la fonction ICamel est interne à la function fnCamelCase et est son deuxième format d'appel possible pour FirebirdSQL 3 uniquement et qui, dans notre cas, nous permet de déclarer, d'une manière détourné, des variables interne à notre function.

Autre avantage des functions est l'éventuel remplacement de vos UDFs si difficilement utilisable sur un site partagé.

View User Profile for Norbert Saint Georges
Envoié par Norbert Saint Georges dimanche 20 janvier 2013 21:38:34 Categories: FirebirdSQL
Tetrasys Oy
Évaluer ce contenu Voix 1

Commentaires

Les commentaires sont fermés pour ce message.