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

Functions comprises dans FreeAdhocUDF.dll/.so/.dylib :
Fonctions BLOb 20 fonctions et 3 variantes

Conversions 3 fonctions

Traitements 8 fonctions et 3 variantes

Calculs 5 fonctions

Comparaisons 2 fonctions

Recherches 2 fonctions

peut aussi renvoyer <null> sous FB 2.0 Traitement de <null>

à partir de InterBase 2007 on peut remplacer par la fonction SQL incorporée

à partir de FireBird 2.1 on peut remplacer par la fonction SQL incorporée


Lors du RETURN: FREE_IT, sauf indication contraire
Les TestSQL avec NULL ne sont opérationnels que sous FireBird 2.0
 
Fonctions BLOb: Conversions
à partir de superflues, les BLObs peuvent être traités comme les VarChar
F_BLOBASPCHAR
Compatible avec FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint blobaspchar pas compatible UTF-8 – traite les BLOb comme une chaîne
Entrée BLOB
TextBlob qui doit être converti en VarChar
Sortie CSTRING(32760) Convertit TextBlob en VarChar
TestSQL (pour TestISO.GDB)
SELECT 'ein einzeiliger TextBLOb' AS ISCORRECT, TEXTBLOB, F_BLOBASPCHAR(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 1;
SELECT '' AS ISCORRECT, F_BLOBASPCHAR(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 11;
SELECT NULL AS ISCORRECT, F_BLOBASPCHAR(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de superflues, les BLObs peuvent être traités comme les VarChar
F_STRBLOB Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc
(B_PUT_SEGMENT)
Entrypoint strblob pas compatible UTF-8 – traite les BLOb comme une chaîne
Entrée CSTRING(32760) VarChar qui doit être converti en TextBlob
Sortie BLOB Convertit VarChar en TextBlob
TestSQL
SELECT 'soviel für heute' AS ISCORRECT, F_BLOBASPCHAR(F_STRBLOB('soviel für heute')) FROM RDB$DATABASE;
nach oben • go top •
à partir de superflues, les BLObs peuvent être traités comme les VarChar
F_BLOB2EXCEL Fonction de adhoc
Entrypoint excelblob pas compatible UTF-8 – en cas de besoin, nous contacter
Entrée BLOB BLOb à transformer pour Excel
Sortie CSTRING(32760)
Pour pouvoir exporter vers Excel du texte de plusieurs lignes ou du texte contenant des guillemets doubles hauts (") venant de chaînes BLOb, certaines adaptations sont nécessaires. Cette fonction agit dans ce sens. Elle:
- ajoute au début et à la fin de la chaîne un guillemet double haut (")
- redouble chaque guillemet double haut (") qui se trouvait dans le texte
- enlève tous les CHR(13) de la chaîne
- tronque la chaîne BLOb pour ne pas dépasser 32000 caractères (limite d’un champ dans Excel)
    - Limites de Excel97 pour un champ de 32000 caractèresn
    - Limites de Excel2000 pour un champ de 32767 caractères

TestSQL
SELECT '"ein dreizeiliger TextBLOb' || F_LF() || 'mit einer zweiten Zeile' || F_LF() || 'und einer dritten Zeile"' AS ISCORRECT, F_BLOB2EXCEL(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOB2EXCEL(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
Remarque:
Comme cela n’a pas de sens d’exporter vers Excel un (très) long texte venant d’une base de données, on doit tout d’abord le traiter avec les fonctions F_LEFT ou F_RIGHT pour rendre l’opération possible. Par exemple:
SELECT F_RIGHT(F_BLOB2EXCEL(BLObFeldAGENDA), 1000) FROM ... exporte, par exemple, les derniers 1000 caractères d’un champ BLOb d’un agenda.
nach oben • go top •
 
Fonctions BLOb: Traitements
à partir de remplaçable par F_LEFT
à partir de remplaçable par LEFT
F_BLOBLEFT
Compatible avec FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint blobleft pas compatible UTF-8 – emploie U_LEFT
Entrée BLOB
INTEGER
TextBlob dont on va extraire une chaîne
Longueur de la chaîne à extraire
Sortie CSTRING(32760) le début du texte spécifié en une chaîne de la longueur donnée au paramètre 2
Le comptage commence à 1
TestSQL (pour TestISO.GDB)
SELECT 'ein einzeiliger' AS ISCORRECT, F_BLOBLEFT(TEXTBLOB, 15) FROM BLOBTEST WHERE BLOBTESTID = 1;
SELECT '' AS ISCORRECT, F_BLOBLEFT(TEXTBLOB, 15) FROM BLOBTEST WHERE BLOBTESTID = 11;
SELECT NULL AS ISCORRECT, F_BLOBLEFT(TEXTBLOB, NULL) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de e remplaçable par F_MID
F_BLOBMID
Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint blobmid pas compatible UTF-8 – emploie U_MID
à partir de remplaçable par F_COPY ou F_STRCOPY
F_RBLOBMID Entrée/Sortie compatibles avec rFunc (B_SUBSTR, B_LONGSUBSTR)
Entrypoint r_blobmid pas compatible UTF-8 – emploie U_MID
Entrée BLOB
INTEGER
INTEGER
TextBlob dont on va extraire une chaîne
Position du début de la chaîne à extraire
Longueur de la chaîne à extraire
Sortie CSTRING(32760) Extrait du texte fourni une chaîne de caractères d’une longueur spécifiée au paramètre 3 et commençant à la position spécifiées au paramètre 2. 
F_BLOBMID - on compte à partir de 0 pour le paramètre 2
F_RBLOBMID - on compte à partir de 1 pour le paramètre 2
TestSQL (pour TestISO.GDB)
SELECT 'zwei' AS ISCORRECT, F_BLOBMID(TEXTBLOB, 4, 4) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT NULL AS ISCORRECT, F_BLOBMID(TEXTBLOB, NULL, NULL) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de remplaçable par F_RIGHT
à partir de remplaçable par RIGHT
F_BLOBRIGHT Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint blobright pas compatible UTF-8 – emploie U_RIGHT
Entrée BLOB
INTEGER
TextBlob dont on va extraire une chaîne
Longueur de la chaîne à extraire
Sortie CSTRING(32760) Extrait de la fin du texte donné un nombre de caractères spécifié au paramètre 2
Le comptage commence à 1
TestSQL (pour TestISO.GDB)
SELECT 'dritten Zeile' AS ISCORRECT, F_BLOBRIGHT(TEXTBLOB, 13) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOBRIGHT(TEXTBLOB, NULL) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de remplaçable par || (comme pour les chaînes)
F_BLOBCAT Compatible avec GrUDF
Entrypoint blobcat pas compatible UTF-8 – emploie || (comme pour les chaînes)
Entrée BLOB
BLOB
TexteBlob à concaténer avec le TexteBlob du paramètre 2
TexteBlob à concaténer à la suite du TexteBlob du paramètre 1
Sortie BLOB Concatène le contenu du second champ BLOb au premier pour former un tout
La fonction ajoute un CRLF à la fin du premier BLOb avant l’ajout du second.
TestSQL (pour TestISO.GDB)
INSERT INTO BLOBTEST (TEXTBLOB) SELECT F_BLOBCAT(TEXTBLOB, (SELECT TEXTBLOB FROM BLOBTEST WHERE BLOBTESTID = 2)) FROM BLOBTEST WHERE BLOBTESTID = 1;
Crée un nouveau enregistrement dans tableau BLOBTEST, où le champ TEXTBLOP résulte des contenus assemblés de TEXTBLOB de l’enregistrement avec le TEXTBLOBID 1 et l’enregistrement avec le TEXTBLOBID     2.
nach oben • go top •
à partir de remplaçable par || (comme pour les chaînes)
F_BLOBCATSTR Compatible avec GrUDF
Entrypoint blobcatstr pas compatible UTF-8 – emploie || (comme pour les chaînes)
Entrée BLOB
CSTRING(32760)
TexteBLOb à concaténer avec le chaîne de caractères du paramètre 2
Chaîne de caractères à concaténer au TexteBLOb du paramètre 1
Sortie BLOB Concatène le contenu d’un champ BLOb et d’une chaîne de caractères et place le résultat dans un champ BLOb
La fonction insère un CRLF à la fin du premier champ BLOb avec d’y concaténer la chaîne du paramètre 2.
TestSQL (pour TestISO.GDB)
INSERT INTO BLOBTEST (TEXTBLOB) SELECT F_BLOBCATSTR(TEXTBLOB, 'Diese Zeile wurde angehängt') FROM BLOBTEST WHERE BLOBTESTID = 1;
Crée dans la table BLOBTEST un nouvel enregistrement, où le champ TEXTBLOB résulte des contenus assemblés de TEXTBLOB de l’enregistrement avec TEXTBLOBID 1 et de la chaîne “Diese Zeile wurde angehängt”.
nach oben • go top •
à partir de remplaçable par F_REPLACESTRING
F_BLOBREPLACESTRING Fonction de adhoc
Entrypoint blobreplacestring pas compatible UTF-8 – emploie U_BLOBREPLACESTRING
U_BLOBREPLACESTRING Fonction de adhoc
Entrypoint u_blobreplacestring Compatibles UTF-8
Entrée BLOB
CSTRING(254)
CSTRING(254)
INTEGER
INTEGER
Le TexteBLOb dans lequel une chaîne va être modifiée
La chaîne à modifier
La chaîne servant au remplacement
0 = un seul remplament, 1 = remplacement de toutes les chaînes
0 = distinction des lettres majuscules et minuscules, 1 = pas de distinction
Sortie BLOB Remplace une ou plusieurs fois la chaîne du paramètre 2 trouvée par la chaîne du paramètre 3
Elle peut prendre en compte les différences entre lettres majuscules et minuscules.
TestSQL (pour TestISO.GDB)
SELECT 'vier einzeiliger TextBLOb' AS ISCORRECT, F_BLOBREPLACESTRING(TEXTBLOB, 'ein', 'vier', 0, 0) FROM BLOBTEST WHERE BLOBTESTID = 1;
SELECT 'vier vierzeiliger TextBLOb' AS ISCORRECT, F_BLOBREPLACESTRING(TEXTBLOB, 'ein', 'vier', 1, 0) FROM BLOBTEST WHERE BLOBTESTID = 1;
nach oben • go top •
à partir de remplaçable par F_SUBSTR
F_BLOBSUBSTR Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (B_STRPOS)
Entrypoint blobsubstr pas compatible UTF-8 – emploie U_BLOBSUBSTR
U_BLOBSUBSTR Fonction de adhoc
Entrypoint u_blobsubstr Compatibles UTF-8
Entrée BLOB
CSTRING(1024)
TextBLOb (dans lequel la position du paramètre 2 doit être trouvée)
chaîne de caractères 2 (position de laquelle doit être trouvée dans paramètre 1)
Sortie INTEGER Indique la 1ère position dans BLOb, à laquelle la chaîne de caractères 2 commence
Le comptage commence à 0.
TestSQL (pour TestISO.GDB)
SELECT 4 AS ISCORRECT, F_BLOBSUBSTR(TEXTBLOB, 'einzeiliger') FROM BLOBTEST WHERE BLOBTESTID = 1;
SELECT NULL AS ISCORRECT, F_BLOBSUBSTR(TEXTBLOB, NULL) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
F_BLOBLINE Compatible avec FreeUDFLib, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (B_LINE, B_LONGLINE)
Entrypoint blobline Compatibles UTF-8
Entrée BLOB
INTEGER
TextBLOb
à Numéro̊ de la ligne à reproduire
Sortie CSTRING(32760) Reproduit la ligne <paramètre 2> du TextBLOb
TestSQL (pourn TestISO/UTF8.GDB/FDB)
SELECT 'mit einer zweiten Zeile' AS ISCORRECT, F_BLOBLINE(TEXTBLOB, 2) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOBLINE(TEXTBLOB, NULL) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
 
Fonctions BLOb: Calculs
F_BLOBSIZE Compatible avec FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc
(B_TOTAL_LENGTH)
Entrypoint blobsize Compatibles UTF-8
Entrée BLOB TextBLOb ou à BLOb binaire
Sortie INTEGER la longueur des BLOb
Dans le cas d’un TextBlob, fournit la longueur (analogue à F_STRINGLENGTH); dans le cas d’un à BLOb binaire, la taille des données.
TestSQL (pour TestISO.GDB)
Pour TextBLOb:
SELECT 50 AS ISCORRECT, F_BLOBSIZE(TEXTBLOB), F_STRINGLENGTH(F_BLOBASPCHAR(TEXTBLOB)) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT 0 AS ISCORRECT, F_BLOBSIZE(TEXTBLOB), F_STRINGLENGTH(F_BLOBASPCHAR(TEXTBLOB))
FROM BLOBTEST WHERE BLOBTESTID = 11;
SELECT NULL AS ISCORRECT, F_BLOBSIZE(TEXTBLOB), F_STRINGLENGTH(F_BLOBASPCHAR(TEXTBLOB))
FROM BLOBTEST WHERE BLOBTESTID = 10;
Pour BinärBLOb:
SELECT 1426 AS ISCORRECT, F_BLOBSIZE(BINAERBLOB) FROM BLOBTEST WHERE BLOBTESTID = 4;
nach oben • go top •
F_BLOBMAXSEGMENTLENGTH Compatible avec FreeUDFLib
Entrée/Sortie compatibles avec rFunc (B_MAX_SEGMENT)
Entrypoint blobmaxsegmentlength pas compatible UTF-8 – pas de fonction UTF-8 prévue
Entrée BLOB TextBLOb à ou BLOb binaire
Sortie INTEGER Détecte le nombre de bytes du plus grand segment BLOb
TestSQL (pour TestISO.GDB)
Pour TextBLOb:
SELECT 16384 AS ISCORRECT, F_BLOBMAXSEGMENTLENGTH(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 8;
SELECT NULL AS ISCORRECT, F_BLOBMAXSEGMENTLENGTH(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
Pour BinärBLOb:
SELECT 16384 AS ISCORRECT, F_BLOBMAXSEGMENTLENGTH(BINAERBLOB) FROM BLOBTEST WHERE BLOBTESTID = 7;
nach oben • go top •
F_BLOBSEGMENTCOUNT Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (B_NUMBER_SEGMENTS)
Entrypoint blobsegmentcount pas compatible UTF-8 – pas de fonction UTF-8 prévue
Entrée BLOB TextBLOb à ou BLOb binaire
Sortie INTEGER Nombre de segments BLOb
TestSQL (pour TestISO.GDB)
Pour TextBLOb:
SELECT 3 AS ISCORRECT, F_BLOBSEGMENTCOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 8;
SELECT NULL AS ISCORRECT, F_BLOBSEGMENTCOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
Pour BinärBLOb:
SELECT 2 AS ISCORRECT, F_BLOBSEGMENTCOUNT(BINAERBLOB) FROM BLOBTEST WHERE BLOBTESTID = 7;
nach oben • go top •
F_BLOBLINECOUNT Fonction de adhoc
Entrée/Sortie compatibles avec rFunc (B_LINE_COUNT)
Entrypoint bloblinecount Compatibles UTF-8
Entrée BLOB TextBLOb
Sortie INTEGER Détecte le nombre de lignes dans un TextBLOb
TestSQL (pour TestISO.GDB)
SELECT 3 AS ISCORRECT, F_BLOBLINECOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOBLINECOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de ersetzbar durch F_WORDCOUNT
F_BLOBWORDCOUNT Fonction de adhoc
Entrypoint blobwordcount Compatibles UTF-8
Entrée BLOB TextBLOb
Sortie INTEGER Compte les mots de TextBLOb
Un mot se termine par un ou plusieurs espaces, par un tabulateur (TAB) ou par un retour chariot (CRLF).
TESTSQL
SELECT 11 AS ISCORRECT, F_BLOBWORDCOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOBWORDCOUNT(TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
 
Fonctions BLOb: Comparaisons
à partir de superflues, les BLObs peuvent directement être comparés comme les VarChar
F_BLOBCOMPARE Compatible avec FreeUDFLib, GrUDF (BLOBICOMP)
Entrypoint blobcompare Compatibles UTF-8
Entrée BLOB
BLOB
BLOB 1
BLOB 2
Sortie INTEGER Compare deux BLOBs Binaires l’un avec l’autre 1 = égalité, 0 = pas d’égalité
TestSQL (pour TestISO.GDB)
SELECT 1 AS ISCORRECT, F_BLOBCOMPARE(TEXTBLOB, TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT 0 AS ISCORRECT, F_BLOBCOMPARE(TEXTBLOB, (SELECT TEXTBLOB FROM BLOBTEST WHERE BLOBTESTID = 2)) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT NULL AS ISCORRECT, F_BLOBCOMPARE(TEXTBLOB, TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
nach oben • go top •
à partir de superflues, les BLObs peuvent directement être comparés comme les VarChar
F_BLOBCMP Entrée/Sortie compatibles avec rFunc (B_STRCMP)
Entrypoint b_strcmp pas compatible UTF-8 – en cas de besoin, nous contacter
Entrée BLOB
BLOB
BLOb 1
BLOb 2
Sortie INTEGER Sortie > 0 : BLOb 1 est plus court que BLOb 2
Sortie = 0 : BLOb 1 = BLOb 2
Sortie < 0 : BLOb 1 est plus long que BLOb 2
Attention: dans la fonction B_STRCMP originale de rFunc la sortie positive ou négative est inversée par rapport à la fonction STRCMP. Dans le cas de la fonction de chaîne, une sortie positive indique que la première chaîne est plus longue, alors que pour la fonction BLOb c’est le second BLOb qui est plus long! Dans un souci de compatibilité, nous avons conservé ce comportement tel quel dans FreeAdhocUDF!
TestSQL (für TestISO.GDB/FDB)
SELECT 0 AS ISCORRECT, F_BLOBCMP(TEXTBLOB, TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT 1 AS ISCORRECT, F_BLOBCMP(TEXTBLOB, (SELECT TEXTBLOB FROM BLOBTEST WHERE BLOBTESTID = 2)) FROM BLOBTEST WHERE BLOBTESTID = 3;
SELECT -1 AS ISCORRECT, F_BLOBCMP(TEXTBLOB, (SELECT TEXTBLOB FROM BLOBTEST WHERE BLOBTESTID = 3)) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT NULL AS ISCORRECT, F_BLOBCMP(NULL, NULL) FROM BLOBTEST WHERE BLOBTESTID = 3;
nach oben • go top •
 
Fonctions BLOb: Recherches
à partir de remplaçable par F_STRPOS
F_BLOBSTRPOS Entrée/Sortie compatibles avec rFunc (B_STRPOS)
Entrypoint b_strpos pas compatible UTF-8 – en cas de besoin, nous contacter
Entrée CSTRING(8190)
BLOB
Chaîne à rechercher dans le BLOb
BLOb dans lequel on recherche
Sortie INTEGER Position de départ de la chaîne dans le BLOb, 0 si pas trouvé
Pour la chaîne à rechercher la distinction entre haut et bas de casse est importante. Le comptage de la position de départ commence à 1.
TestSQL (pour TestISO.GDB/FDB)
SELECT 5 AS ISCORRECT, F_BLOBSTRPOS('zwei', TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT 0 AS ISCORRECT, F_BLOBSTRPOS('Zwei', TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT NULL AS ISCORRECT, F_BLOBSTRPOS(NULL, NULL) FROM BLOBTEST WHERE BLOBTESTID = 2;
nach oben • go top •
F_BLOBTEXTPOS Entrée/Sortie compatibles avec rFunc (B_TEXTPOS)
Entrypoint b_textpos pas compatible UTF-8 – en cas de besoin, nous contacter
Entrée CSTRING(8190)
BLOB
Chaîne à rechercher dans le BLOb
BLOb dans lequel on recherche
Sortie INTEGER Position de départ de la chaîne dans le BLOb, 0 si pas trouvé
Pour la chaîne à rechercher la distinction entre haut et bas de casse n’a pas d’importance. Le comptage de la position de départ commence à 1.
TestSQL (pour TestISO.GDB/FDB)
SELECT 5 AS ISCORRECT, F_BLOBTEXTPOS('zwei', TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT 5 AS ISCORRECT, F_BLOBTEXTPOS('Zwei', TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 2;
SELECT NULL AS ISCORRECT, F_BLOBTEXTPOS(NULL, NULL) FROM BLOBTEST WHERE BLOBTESTID = 2;
vorige Seite • previous page • passée sitenach oben • go top • vers le hautnächste Seite • next page • prochain site