FreeAdhocUDF pour InterBase et FireBird in deutschin englishen français
homeprevious pagecontentnext pagelast page Mailing-Liste • mailinglist • liste de diffusion was ich vermisse • what I missed •eMail Kommentar • eMail commentprint
Fonctions de FreeAdhocUDF devenues superflues

Par suite des nouveaux développements, certaines fonctions sont devenues superflues. Elles ont en effet été incorporées dans les mots réservés du langage (ce qui n’est pas le cas des UDF de ib_udf ou fbudf).
Il est recommandé de n’utiliser que les fonctions incorporées, car elles sont (en théorie) plus rapides, mais aussi plus sures (chaque appel d’une fonction UDF pourrait conduire à une défaillance du serveur à cause, par exemple, d’un mauvais paramétrage).

Prenez en compte, s’il vous plait, que la syntaxe est partiellement différente de celle des fonctions FreeAdhocUDF

InterBase

À partir de InterBase 6.0
F_YEAR peut être remplacée par EXTRACT(YEAR FROM ...)
    SELECT F_YEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MONTH peut être remplacée par EXTRACT(MONTH FROM ...)
    SELECT F_MONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFMONTH peut être remplacée par EXTRACT(DAY FROM ...)
    SELECT F_DAYOFMONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    F_HOUR peut être remplacée par EXTRACT(HOUR FROM ...)
    SELECT F_HOUR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MINUTE peut être remplacée par EXTRACT(MINUTE FROM ...)
    SELECT F_MINUTE(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_SECOND peut être remplacée par EXTRACT(SECOND FROM ...)
    SELECT F_SECOND(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
   SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFWEEK peut être remplacée par EXTRACT(WEEKDAY FROM ...)
    SELECT F_DAYOFWEEK(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 FROM RDB$DATABASE;
    Remarque:
    La fonction FreeAdhocUDF F_DAYOFWEEK renvoie 1 pour Dimanche alors que EXTRACT(WEEKDAY ...) fournit 0 pour     Dimanche. Cela peut être corrigé comme dans l’exemple ci-dessus.
F_DAYOFYEAR peut être remplacée par EXTRACT(YEARDAY FROM ...)
    SELECT F_DAYOFYEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(YEARDAY FROM CURRENT_TIMESTAMP)  FROM RDB$DATABASE;
À partir de InterBase 7.5
CASE peut remplacer F_IF
COLLESCE et
NULLIF remplacent l’appel à NULL et F_STRINGLENGTH(..) = 0 respectivement … = 0

À partir de InterBase 2007
De nombreuses fonctions BLOb sont maintenant superflues car InterBase2007 peut maintenant interpréter les BLOb comme des chaînes de caractères.
F_BLOBASPCHAR les BLOb peuvent maintenant être traités sans conversion
F_STRBLOB les BLOb peuvent maintenant être traités sans conversion
F_BLOB2EXCEL peut être remplacé par F_STR2EXCEL
F_BLOBCAT peut être remplacé par || (comme pour des chaînes)
F_BLOBCATSTR peut être remplacé par || (comme pour des chaînes)
F_BLOBLEFT peut être remplacé par F_LEFT
F_BLOBMID peut être remplacé par F_MID
F_BLOBRIGHT peut être remplacé par F_RIGHT
F_BLOBREPLACESTRING peut être remplacé par F_REPLACESTRING
F_BLOBSUBSTR peut être remplacé par F_SUBSTR
F_BLOBWORDCOUNT peut être remplacé par F_WORDCOUNT
F_BLOBCOMPARE superflue, les BLOB pouvant maintenant être comparés directement
 
FireBird

À partir de FireBird 1.0
F_YEAR peut être remplacée par EXTRACT(YEAR FROM ...)
    SELECT F_YEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MONTH peut être remplacée par EXTRACT(MONTH FROM ...)
    SELECT F_MONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFMONTH peut être remplacée par EXTRACT(DAY FROM ...)
    SELECT F_DAYOFMONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    F_HOUR peut être remplacée par EXTRACT(HOUR FROM ...)
    SELECT F_HOUR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MINUTE peut être remplacée par EXTRACT(MINUTE FROM ...)
    SELECT F_MINUTE(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_SECOND peut être remplacée par EXTRACT(SECOND FROM ...)
    SELECT F_SECOND(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
   SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFWEEK peut être remplacée par EXTRACT(WEEKDAY FROM ...)
    SELECT F_DAYOFWEEK(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 FROM RDB$DATABASE;
    Remarque:
    La fonction FreeAdhocUDF F_DAYOFWEEK renvoie 1 pour Dimanche alors que EXTRACT(WEEKDAY ...) fournit 0 pour     Dimanche. Cela peut être corrigé comme dans l’exemple ci-dessus.
F_DAYOFYEAR peut être remplacée par EXTRACT(YEARDAY FROM ...)
    SELECT F_DAYOFYEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    est identique à
    SELECT EXTRACT(YEARDAY FROM CURRENT_TIMESTAMP)  FROM RDB$DATABASE;
F_MID peut être remplacée par SUBSTRING
    SELECT 'cdefg' AS ISCORRECT, F_MID('abcdefghijk', 2 ,5) FROM RDB$DATABASE
    est identique à
    SELECT 'cdefg' AS ISCORRECT, SUBSTRING('abcdefghijk' FROM 3 FOR 5) FROM RDB$DATABASE   
À partir de FireBird 2.0 
F_UPPER peut être remplacée par UPPER – tenant compte aussi des lettres accentuées
    SELECT 'MÜLLER', F_UPPER('Müller') FROM RDB$DATABASE;
    est identique à
    SELECT 'MÜLLER', UPPER('Müller') FROM RDB$DATABASE;
F_LOWER peut être remplacée par LOWER - tenant compte aussi des lettres accentuées
    SELECT 'müller', F_LOWER('MÜLLER') FROM RDB$DATABASE;
    est identique à
    SELECT 'müller', LOWER('MÜLLER') FROM RDB$DATABASE;
F_RTRIM peut être remplacée par TRIM
    SELECT F_RTRIM('abcde   ') FROM RDB$DATABASE
     est identique à
    SELECT TRIM('abcde   ') FROM RDB$DATABASE   
F_IF peut être remplacée par IIF
    SELECT F_IF(1, '>', 0, -1, 1) FROM RDB$DATABASE;
    est identique à
    SELECT IIF(1 > 0, -1, 1) FROM RDB$DATABASE;
F_STRINGLENGTH peut être remplacée par CHARACTER_LENGTH et
F_STRINGLENGTH peut être remplacée par CHAR_LENGTH 
    SELECT F_STRINGLENGTH('abcde') FROM RDB$DATABASE;
    est identique à
    SELECT CHARACTER_LENGTH('abcde') FROM RDB$DATABASE;
    ainsi qu’à
    SELECT CHAR_LENGTH('abcde') FROM RDB$DATABASE
À partir de FireBird 2.1
De nombreuses fonctions BLOb sont maintenant superflues par FireBird 2.1 peut maintenant interpréter les BLOb comme des chaînes de caractères.
F_BLOBASPCHAR les BLOb peuvent maintenant être traités sans conversion ou
F_STRBLOB les BLOb peuvent maintenant être traités sans conversion
F_BLOB2EXCEL peut être remplacé par F_STR2EXCEL
F_BLOBCAT peut être remplacé par || (comme pour des chaînes)
F_BLOBCATSTR peut être remplacé par || (comme pour des chaînes)
F_BLOBLEFT peut être remplacé par F_LEFT ou par fonction interne LEFT
F_BLOBMID peut être remplacé par F_MID
F_BLOBRIGHT peut être remplacé par F_RIGHT par fonction interne RIGHT
F_BLOBREPLACESTRING peut être remplacé par F_REPLACESTRING
F_BLOBSUBSTR peut être remplacé par F_SUBSTR
F_BLOBWORDCOUNT peut être remplacé par F_WORDCOUNT
F_BLOBCOMPARE superflue, les BLOB pouvant maintenant être comparés directement
fonctions interne
F_ABS (F_DOUBLEABS, F_INTEGERABS) peut être remplacé par fonction interne ABS
F_ACOS peut être remplacé par fonction interne ACOS
F_CHR (F_CHARACTER) peut être remplacé par fonction interne ASCII_CHAR
F_ORD peut être remplacé par fonction interne ASCII_VAL
F_ASIN peut être remplacé par fonction interne ASIN
F_ATAN peut être remplacé par fonction interne ATAN
F_ATAN2 peut être remplacé par fonction interne ATAN2
F_BIN_AND peut être remplacé par fonction interne BIN_AND
F_BIN_OR peut être remplacé par fonction interne BIN_OR
Remarque : BIN_NOT est à oublier, car il n’existe pas
F_BIN_SHL peut être remplacé par fonction interne BIN_SHL
F_BIN_SHR peut être remplacé par fonction interne BIN_SHR
F_BIN_XOR peut être remplacé par fonction interne BIN_XOR
F_CEILING peut être remplacé par fonction interne CEIL | CEILING
F_COS peut être remplacé par fonction interne COS
F_COSH peut être remplacé par fonction interne COSH
F_COT peut être remplacé par fonction interne COT
F_ADDYEAR, F_ADDMONTH, F_ADDWEEK, F_ADDDAY, F_ADDHOUR, F_ADDMINUTE, F_ADDSECOND
peut être remplacé par fonction interne DATEADD - Attention syntaxe complètement différente
F_AGEINYEARS, F_AGEINMONTHS, F_AGEINWEEKS, F_AGEINDAYS, F_AGEINHOURS, F_AGEINMINUTES, F_AGEINSECONDS peut être remplacé par fonction interne DATEDIFF - bisher nicht testbar, da Bug - Attention syntaxe complètement différente
F_IIF peut être remplacé par fonction interne DECODE - Attention syntaxe complètement différente
F_EXP peut être remplacé par fonction interne EXP
F_FLOOR peut être remplacé par fonction interne FLOOR
GEN_UUID produit un identifiant unique universele UUID pas conforme à la norme FRC4122
F_LEFT peut être remplacé par fonction interne LEFT
F_LN peut être remplacé par fonction interne LN
F_LOG peut être remplacé par fonction interne LOG - Attention : paramètres permutés
F_LOG10 peut être remplacé par fonction interne LOG10
F_LPAD peut être remplacé par fonction interne  LPAD - Attention : si la chaîne servant de remplacement comporte plus d’un caractère ET si le résultat est trop long, LPAD tronque la chaîne résultante à droite, tandis que F_PADLEFT tronque à gauche
F_MAX (F_MAXNUM) peut être remplacé par fonction interne MAXVALUE
F_MIN (F_MINNUM) peut être remplacé par fonction interne MINVALUE
F_MODULO peut être remplacé par fonction interne MOD
F_STRSTUFF peut être remplacé par fonction interne OVERLAY - Attention syntaxe complètement différente
F_PI peut être remplacé par fonction interne PI
F_STRPOS  peut être remplacé par fonction interne POSITION - Attention syntaxe complètement différente
F_POWER peut être remplacé par fonction interne POWER
F_RAND peut être remplacé par fonction interne RAND
F_REPLACE peut être remplacé par fonction interne REPLACE
F_REVERSE peut être remplacé par fonction interne REVERSE
F_RIGHT peut être remplacé par fonction interne RIGHT
F_ZAHLRUNDEN (F_ROUNDCOMMON) peut être remplacé par fonction interne ROUND - Attention: la fonction incorporée ROUND peut également arrondir à gauche de la virgule
F_RPADRIGHT (F_RIGHTPAD) peut être remplacé par fonction interne RPAD
F_SIGN peut être remplacé par fonction interne SIGN
F_SIN peut être remplacé par fonction interne SIN
F_SINH peut être remplacé par fonction interne SINH
F_SQRT peut être remplacé par fonction interne SQRT
F_TAN peut être remplacé par fonction interne TAN
F_TANH peut être remplacé par fonction interne TANH
F_TRUNCATE peut être remplacé par fonction interne TRUNC    
nach oben • go top • vers le hautnächste Seite • next page • prochain site