[Le problème est résolu par une bidouille propre à mon cas de figure
Mais la question de fond reste entière ......]
Bonjour,
Je patine sur un problème d'apparence balotte, sans trouver dans la littérature de solution adéquate.
Je suis en train de gratter une fonction qui a pour objectif de vérifier le formattage d'un champ. Celui-ci, de type CHAR() est normalement composé d'un ensemble bien codifié de séquences de lettres et de nombres, le tout séparé par des caractères spéciaux bien définis.
Pas de pb pour récupérer individuellement chaque élément de la chaîne.
Pas de pb non plus pour vérifier la présence la taille et le bon positionnement des séquences de lettres et des caractères spéciaux.
Par contre, comment puis-je vérifier vérifier les nombres ? Je ne sais pas à l'avance si au lieu d'un nombre, c'est une chaîne de caractères qui par erreur ait été saisi. Et dans ce cas, si j'utilise un CAST( .... as FLOAT), je génère une erreur qui arrête l'exécution. Et comme il ni a pas de fonction système de type ISERROR() .....et que le @@ERROR ne fonctionne que pour des erreurs dans des requêtes, .... je sais pas trop comment gérer ce cas de figure
L'une des solutions serait de passer par des RegEx mais comme la base est sous SQL 2000, faudrait passer par la librairie VBScript.RegExp ce qui pourrait poser ultérieurement des problèmes de compatibilité ascendante.
Je précise d'avance que bien évidemment, je ne peux pas toucher à la structure de la base et que je n'ai pas la main sur la GUI de l'application (donc je ne peux faire la vérif lors de la saisie).
Merci d'avance pour votre aide.
Partager