FreeAdhocUDF pour InterBase et FireBird in deutschin englishen françaisen españolin italianoa português
homeprevious pagecontentnext pagelast page Seite empfehlen • advice website • Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprintsitemap
Fonctions BLOb 21 fonctions
Conversions 3 fonctions
Traitements 9 fonctions
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
F_BLOBASPCHAR
Compatible avec FreeUDFLib, FreeUDFLib AvERP, GrUDF
superflues, les BLObs peuvent être traités comme les VarChar
Entrypoint blobaspchar
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 •
F_STRBLOB Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc
(B_PUT_SEGMENT)
superflues, les BLObs peuvent être traités comme les VarChar
Entrypoint strblob
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 •
F_BLOB2EXCEL Fonction de adhoc
remplaçable par F_STR2EXCEL
Entrypoint excelblob
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 32760 caractères (limite d’un champ dans Excel)
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
F_BLOBLEFT
Compatible avec FreeUDFLib, FreeUDFLib AvERP, GrUDF
remplaçable par F_LEFT
remplaçable par LEFT
Entrypoint blobleft
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 •
F_BLOBMID

Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
e remplaçable par F_MID
Entrypoint blobmid
F_RBLOBMID Entrée/Sortie compatibles avec rFunc (B_SUBSTR, B_LONGSUBSTR)
remplaçable par F_COPY ou F_STRCOPY
Entrypoint r_blobmid
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 •
F_BLOBRIGHT Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
remplaçable par F_RIGHT
remplaçable par RIGHT
Entrypoint blobright
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 •
F_BLOBCAT Compatible avec GrUDF
remplaçable par || (wie bei Strings)
Entrypoint blobcat
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 •
F_BLOBCATSTR Compatible avec GrUDF
remplaçable par || (wie bei Strings)
Entrypoint blobcatstr
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 •
F_BLOBREPLACESTRING Fonction de adhoc
remplaçable par F_REPLACESTRING
Entrypoint blobreplacestring
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 •
F_BLOBSUBSTR Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (B_STRPOS)
remplaçable par F_SUBSTR
Entrypoint blobsubstr
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
Entrée BLOB
INTEGER
TextBLOb
à Numéro̊ de la ligne à reproduire
Sortie CSTRING(32760) Reproduit la ligne <paramètre 2> du TextBLOb
TestSQL (pour TestISO.GDB)
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
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
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
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
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 •
F_BLOBWORDCOUNT Fonction de adhoc
ersetzbar durch F_WORDCOUNT
Entrypoint blobwordcount
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
F_BLOBCOMPARE Compatible avec FreeUDFLib, GrUDF (BLOBICOMP)
superflues, les BLObs peuvent directement être comparés comme les VarChar
Entrypoint blobcompare
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 NULL AS ISCORRECT, F_BLOBCOMPARE(TEXTBLOB, TEXTBLOB) FROM BLOBTEST WHERE BLOBTESTID = 10;
SELECT 0 AS ISCORRECT, F_BLOBCOMPARE(TEXTBLOB, (SELECT TEXTBLOB FROM BLOBTEST WHERE BLOBTESTID = 2)) FROM BLOBTEST WHERE BLOBTESTID = 3;
nach oben • go top •
F_BLOBCMP Entrée/Sortie compatibles avec rFunc (B_STRCMP)
superflues, les BLObs peuvent directement être comparés comme les VarChar
Entrypoint b_strcmp
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
F_BLOBSTRPOS Entrée/Sortie compatibles avec rFunc (B_STRPOS)
remplaçable par F_STRPOS
Entrypoint b_strpos
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
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