FreeAdhocUDF pour InterBase et FireBird in deutschin englishen françaisen españolin italianoa português
homeprevious pagecontentnext pagelast page Seite empfehlen • advice website •Forum Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprintsitemap
 
Functions comprises dans FreeAdhocUDF.dll/.so/.dylib :
Fonctions Somme de contrôle 27 fonctions
Algorithme mathématique ordinaire fonctions
Calculs associés 23 fonctions
Lors du RETURN: FREE_IT, sauf indication contraire
Les TestSQL avec NULL ne sont opérationnels que sous FireBird 2.0
 
Somme de contrôle: algorithme mathématique ordinaire
Remarques préliminaires sur les sommes de contrôle dans Wikipedia (http://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le): Une somme de contrôle est une méthode simple de vérification de l’intégrité des données soumises ou sauvegardées. Pour un simple exemple de somme de contrôle, voir Wikipedia (http://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le): À vrai dire, sans cette technique, des valeurs lues sur des compteurs numériques donneraient souvent lieu à des erreurs de transmission qui ne seraient pas reconnues. Les procédés de somme de contrôle qui attribuent un poids à chaque élément de la somme, sont nettement plus sûrs envers les modifications accidentelles, comme par exemple la permutation de chiffres, leur répétition ou leur omission.Ils sont mis en œuvre par ISBN (International Standard Book Number) et par les codes GTIN (précédemment code EAN). Le concept de somme de contrôle est aussi mis en application dans des systèmes complexes de calcul qui mettent en œuvre des sommes simples de valeurs de données, comme par exemple le «Cyclic Reduncancy Check». Ce système, au lieu d’utiliser une simple addition, emploie une division polynomiale et est généralement plus fiable dans la détection d’erreurs accidentelles.
Bien que l’usage traditionnel de la somme de contrôle soit utile pour se protéger des modifications accidentelles, il n’offre aucune sécurité contre la manipulation volontaire des données. Pour cette raison, il est souvent nécessaire de faire usage d’algorithmes permettant la cryptographie («hash code»), comme par exemple «Message Digests».
On peut trouver une description détaillée de la somme de contrôle dans http://www.pruefziffernberechnung.de/Startseite.shtml
F_CROSSSUM Fonction de adhoc
Entrypoint crosssum Compatibles UTF-8
Entrée INTEGER
nombre naturel
Sortie INTEGER Somme de contrôle de l’entrée
La somme de contrôle est la somme des chiffres du nombre.
Bsp. 12345: 5+4+3+2+1 = 15
Test-SQL
SELECT 15 AS ISCORRECT, F_CROSSSUM(12345) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CROSSSUM(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CROSSDIFF Fonction de adhoc
Entrypoint crossdiff Compatibles UTF-8
Entrée INTEGER
nombre naturel
Sortie INTEGER Différence de contrôle de l’entréet
La somme de contrôle alternative («cross diff») est obtenue en additionnant et soustrayant alternativement les chiffres en partant de la droite.
Exemples: 12345:  5-4+3-2+1 = 3
Test-SQL
SELECT 3 AS ISCORRECT, F_CROSSDIFF(12345) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CROSSDIFF(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_WEIGHTCROSSSUM Fonction de adhoc
Entrypoint weightcrosssum Compatibles UTF-8
Entrée INTEGER
nombre naturel
Sortie INTEGER Somme de contrôle pondérée de l’entrée
On obtient une somme de contrôle pondérée en multipliant chaque chiffre par la valeur de sa position, avant d’effectuer la somme. On commence par le chiffre de valeur la plus basse.
Exemples: 12345: 5*1 + 4*2 + 3*3 + 2*4 + 1*5 = 35
Test-SQL
SELECT 35 AS ISCORRECT, F_WEIGHTCROSSSUM(12345) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WEIGHTCROSSSUM(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ITERATECROSSSUM Fonction de adhoc
Entrypoint iteratecrosssum Compatibles UTF-8
Entrée INTEGER
nombre naturel
Sortie INTEGER somme de contrôle itérative de l‘entrée
On répète la somme de contrôle tant que le résultat comprend plusieurs chiffres.
Exemples: 12345: 5+4+3+2+1 = 15 -> 5+1 = 6
Test-SQL
SELECT 6 AS ISCORRECT, F_ITERATECROSSSUM(12345) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ITERATECROSSSUM(NULL) FROM RDB$DATABASE;
  
Fonctions numériques: sommes de contrôle et calculs associés
F_ENCRYPTMD5 Compatible avec FreeUDFLibC
Entrypoint encryptmd5 Compatibles UTF-8
Entrée CSTRING(128) Chaîne à encrypter
Sortie CSTRING(33) Encrypté selon l’algorithme MD5
Cette fonction ne renvoie jamais <null> car <null> a aussi un code MD-5 valable.
Attention: le md5 de mêmes chaînes d’une base de données ISO N’EST PAS IDENTIQUE au md5 de mêmes chaînes d’une base de données UTF-8!
Ce n’est que dans une même base de données que deux chaînes identiques peuvent avoir un md5 valable.
TestSQL
SELECT 'e7d31845480111fdba3316129e166860' AS ISCORRECT, F_ENCRYPTMD5('Pauline') FROM RDB$DATABASE;
SELECT 'd41d8cd98f00b204e9800998ecf8427e' AS ISCORRECT, F_ENCRYPTMD5('') FROM RDB$DATABASE;
nach oben • go top •
Remarques préliminaires sur les nombres GTIN, Wikipedia (http://de.wikipedia.org/wiki/GTIN):
Le Global Trade Item Number (GTIN) est un numéro d’identification utilisé dans le monde entier pour les produits et les emballages. GTIN est un concept qui englobe les codes barres EAN ou UCC ainsi que les numéros de produits électroniques EPC, globalement gérés par GSI.
- EAN signifie International Article Number (précédemment European Article Number).
- UCC qui signifie Uniform Code Council, s’est spécialisée en normalisation et entre-temps s’est établie en GSI.
- UCC a notamment développé le code barre Universal Product Code (UPC).
- Le code de prosuit électronique (EPC) permet une identification univoque d’objets, comme par exemple les articles commerciaux ou logistiques, des emballages.
- NVE signifie Nummer der Versandeinheit (numéro d’unité d’expédition).
- Global Returnable Asset IDentifier (GRAI) s’occupe de l’identification des emballages réutilisables et des moyens de transport.
À partir du 1er janvier 2009, l’Allemagne adhère au système d’identification international GSI et de ses codes barres. Ces concepts établis en 2005 sont en usage dans le monde entier et mis en application par plus de 100 organisations GSI.
Désignation anciennes désignations
GTIN-14
GTIN-13 EAN·UCC-13, EAN-13
GTIN-12 EAN·UCC-12, UCC-12, UPC
GTIN-8 EAN·UCC-8, EAN-8
Une calculatrice de nombres GTIN est disponible sur le site http://www.gs1-germany.de/internet//content/e39/e50/e221/e234/
nach oben • go top •
F_GTIN8CHECK Fonction de adhoc
Entrypoint gtin8check Compatibles UTF-8
F_UPC12CHECK Fonction de adhoc
Entrypoint upc12check Compatibles UTF-8
F_GTIN13CHECK Fonction de adhoc
Entrypoint gtin13check Compatibles UTF-8
F_GTIN14CHECK Fonction de adhoc
Entrypoint gtin14check Compatibles UTF-8
F_NVE18CHECK Fonction de adhoc
Entrypoint nve18check Compatibles UTF-8
Entrée CSTRING(250) nombre à contrôler sous forme de chaîne
Sortie INTEGER Nombre de contrôle d’entrée
Recherche d’un nombre de contrôle GTIN. Les signes d’espacement, de séparation ou liaison, ainsi que ceux qui dépassent le maximum autorisé, sont ignorés.
Test-SQL
SELECT 0 AS ISCORRECT, F_GTIN8CHECK('1234567') FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_GTIN8CHECK('1-2a3b4c5d6e7fxx999') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_GTIN8CHECK(NULL) FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_UPC12CHECK('12345678901') FROM RDB$DATABASE;
SELECT 7 AS ISCORRECT, F_GTIN13CHECK('762220000460') FROM RDB$DATABASE;
SELECT 8 AS ISCORRECT, F_GTIN14CHECK('0123456789012') FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_NVE18CHECK('01234567890123456') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_GTIN8CHECK(NULL') FROM RDB$DATABASE;
nach oben • go top •
F_GTIN8 Fonction de adhoc
Entrypoint gtin8 Compatibles UTF-8
F_UPC12 Fonction de adhoc
Entrypoint upc12 Compatibles UTF-8
F_GTIN13 Fonction de adhoc
Entrypoint gtin13 Compatibles UTF-8
F_GTIN14 Fonction de adhoc
Entrypoint gtin14 Compatibles UTF-8
F_NVE18 Fonction de adhoc
Entrypoint nve18 Compatibles UTF-8
Entrée CSTRING(250) nombre à contrôler sous forme de chaîne
Sortie CSTRING(8...18) Nombre complet, y compris le nombre de contrôle
Sortie complète d’un nombre GTIN, y compris le nombre de contrôle. Les signes d’espacement, de séparation ou liaison, ainsi que ceux qui dépassent le maximum autorisé, sont ignorés.
Test-SQL
SELECT '12345670' AS ISCORRECT, F_GTIN8('1234567') FROM RDB$DATABASE;
SELECT '123456789012' AS ISCORRECT, F_UPC12('12345678901') FROM RDB$DATABASE;
SELECT '7622200004607' AS ISCORRECT, F_GTIN13('762220000460') FROM RDB$DATABASE;
SELECT '01234567890128' AS ISCORRECT, F_GTIN14('0123456789012') FROM RDB$DATABASE;
SELECT '012345678901234560' AS ISCORRECT, F_NVE18('01234567890123456') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_GTIN8(NULL') FROM RDB$DATABASE;
nach oben • go top •
Introduction au numéro ISDN, Wikipedia (http://de.wikipedia.org/wiki/Internationale_Standardbuchnummer ou http://en.wikipedia.org/wiki/ISBN):
Le numéro international d’identification des livres (International Standard Book Number), en abrégé ISDN, es tun numéro qui identifie les livres sans ambiguïté. De plus d’autres produits tels que multimedia ou logiciels peuvent aussi être identifiés par un ISDN, pour autant qu’ils comportent une partie rédactionnelle.
Jusque 2006, le numéro ISDN comportait 10 chiffres, y compris un chiffre de contrôle. Des difficultés sont survenues pour attribuer des numéros en Europe de l’Est et dans les pays anglo-saxons. Un numéro à 13 chiffres ISDN-13 a alors été introduit. On désigne désormais les anciens numéros ISDN sous la dénomination ISDN-10.
Depuis le 1er janvier 2007, le ISDN-13 est obligatoire.
Les autres formes de publication, telles que les périodiques ou les œuvres musicales ont leur propre système d’identification.
    - ISAN – International Standard Audiovisual Number
    - ISMN – Internationale Standard-Music-Number  (pour les partitions imprimées ou digitalisées)
    - ISRC – The International Standard Recording Code
    - ISRN – International Standard Technical Report Number
    - ISSN – International Standard Serial Number (numéro international identifiant de manière unique une collection)
    - ISWC – International Standard Musical Work Code
Le système ISBN a été lié au système international de numéros d’articles GTIN (précédemment EAN). De sorte que les livres peuvent être traités dans les surfaces commerciales sans nécessiter une nouvelle identification nationale. Dans ce but, le ISDN-13 des livres est identique au GTIN-13.
Les calculs de chiffres de contrôle pour ISDN-10 et ISDN-13 (GTIN-13) sont différents.
nach oben • go top •
F_ISBN10CHECK Fonction de adhoc
Entrypoint isbn10check
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_ISBN10 Fonction de adhoc
Entrypoint isbn10 Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(13) nombre ISBN-10 complet formaté
Longueur fixe de 10 caractères (13 avec les séparateurs). Les signes acceptés à l’entrée sont 0 à 9; tous les autres signes ainsi que ceux qui dépasse la longueur de 10 sont éliminés.
Test-SQL
SELECT 3 AS ISCORRECT, F_ISBN10CHECK('3-88229-192') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISBN10CHECK(NULL) FROM RDB$DATABASE;
SELECT '3-88229-192-3' AS ISCORRECT, F_ISBN10('3-88229-192') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISBN10(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ISBN13CHECK Fonction de adhoc
Entrypoint isbn13check
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_ISBN13 Fonction de adhoc
Entrypoint isbn13 Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(17) nombre ISBN-13 complet formaté
Longueur fixe de 13 caractères (17 avec les séparateurs). Les signes valables à l’entrée sont de 0 à 9. Tous les autres signes ainsi que ceux qui dépasse la longueur de 13 sont éliminés.
Test-SQL
SELECT 6 AS ISCORRECT, F_ISBN13CHECK('978-3-88229-192') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISBN13CHECK(NULL) FROM RDB$DATABASE;
SELECT '978-3-88229-192-6' AS ISCORRECT, F_ISBN13('978-3-88229-192') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISBN13(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ISSN8CHECK Fonction de adhoc
Entrypoint issn8check
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_ISSN8 Fonction de adhoc
Entrypoint issn8 Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(9) nombre ISSN-8 complet formaté
Longueur fixe de 8 caractères (9 avec le séparteur). Les signes valables à l’entrée sont 0 à 9. Tous les autres signes ainsi que ceux dépassant la longueur de 8, sont éliminés.
Test-SQL
SELECT 9 AS ISCORRECT, F_ISSN8CHECK('0724-867') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISSN8CHECK(NULL) FROM RDB$DATABASE;
SELECT '0724-8679' AS ISCORRECT, F_ISSN8('0724-867') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISSN8(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_UPSTNCHECK Fonction de adhoc
Entrypoint upstncheck
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_UPSTN Fonction de adhoc
Entrypoint upstn Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(18) nombre UPS Tracking-Number complet formaté
UPS Tracking-Number (signature)
Longueur fixe de 18 caractères. Les signes acceptés à l’entrée sont 0 à 9 et A à Z. Les autres signes ainsi que ceux qui dépassent la longueur de 18 sont éliminés.
Test-SQL
SELECT 6 AS ISCORRECT, F_UPSTNCHECK('1Z 591580 68 5558773') FROM RDB$DATABASE;
SELECT 6 AS ISCORRECT, F_UPSTNCHECK('591580685558773') FROM RDB$DATABASE;
SELECT 6 AS ISCORRECT, F_UPSTNCHECK('59158068555877311111111') FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_UPSTNCHECK('1Z 0F6915 68 2239322') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_UPSTNCHECK(NULL) FROM RDB$DATABASE;
SELECT '1Z 591580 68 55587736' AS ISCORRECT, F_UPSTN('1Z 591580 68 5558773') FROM RDB$DATABASE
SELECT '1Z 0F6915 68 22393223' AS ISCORRECT, F_UPSTN('1Z 0F6915 68 22393223') FROM RDB$DATABASE
SELECT NULL AS ISCORRECT, F_UPSTN(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_2OF5CHECK Fonction de adhoc
Entrypoint twooffivecheck
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_2OF5
Entrypoint twooffive Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(13) Nombre 2 de 5 (2 of 5 number) complet formaté
Nombre 2 de 5 (2 of 5 number)
Longueur variable. Les signes valuables à l’entrée sont 0 à 9. Tous les autres signes sont éliminés.
Approprié pour les deux 2of5 industry at 2of5 interleaved.
Test-SQL
SELECT 5 AS ISCORRECT, F_2OF5CHECK('123456') FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_2OF5CHECK('ABC123456XYZ') FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_2OF5CHECK('1234567') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_2OF5CHECK(NULL) FROM RDB$DATABASE;
SELECT '1234565' AS ISCORRECT, F_2OF5('123456') FROM RDB$DATABASE;
SELECT '12345670' AS ISCORRECT, F_2OF5('1234567') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_2OF5(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CODE39CHECK Fonction de adhoc
Entrypoint code39check
Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie INTEGER nombre de contrôle recherché pour l’entrée
F_CODE39 Fonction de adhoc
Entrypoint code39 Compatibles UTF-8
Entrée CSTRING(250)
nombre à contrôler sous forme de chaîne
Sortie CSTRING(13) Nombre Code-39 (3 de 9, 3 of 9) complet formaté
Nombre Code-39 (3 de 9, 3 of 9)
Longueur variable. Caractères valables à l’entrée: 0 à 9, A à Z, $ % + - . / ainsi que l’espace; tous les autres signes sont éliminés.
Test-SQL
SELECT 'K' AS ISCORRECT, F_CODE39CHECK('AB-123') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CODE39CHECK(NULL) FROM RDB$DATABASE;
SELECT 'AB-123K' AS ISCORRECT, F_CODE39('AB-123') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CODE39(NULL) FROM RDB$DATABASE;
vorige Seite • previous page • passée sitenach oben • go top • vers le hautnächste Seite • next page • prochain site