Traitement des arguments
<<<
Valeurs de retour et gestion d'erreurs. Compiler et installer des fonctions utilisateurs
>>>

23.2.2 Ajouter une nouvelle fonction définie par l'utilisateur ( UDF )
23.2 Ajouter des fonctions à MySQL
23 Etendre MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Fonctions utilisateur : appeler des fonctions simples
Appeler des fonctions utilisateurs pour les groupements
Traitement des arguments
->Valeurs de retour et gestion d'erreurs.
Compiler et installer des fonctions utilisateurs

23.2.2.4 Valeurs de retour et gestion d'erreurs.

La fonction d'initialisation doit retourner 0 si aucune erreur ne s'est produite et 1 sinon. Si une erreur s'est produite, xxx_init() doit stocker un message se terminant par un NULL dans le paramètre message . Le message sera retourné au client. La taille du tampon du message est de MYSQL_ERRMSG_SIZE caractères, mais vous devez essayer de garder une taille de message inférieure à 80 caractères, sinon, il remplit la largeur d'un écran de terminal standard.

La valeur de retour de la fonction principale xxx() est la valeur de la fonction, pour les fonctions long long et double . Une fonction de chaîne de caractères doit retourner un pointeur vers le résultat et stocker la taille de la chaîne de caractères dans l'argument length .

Affectez cette valeur au contenu et à la longueur de la valeur retournée. Par exemple :


memcpy(result, "chaîne retournée", 16);
*length = 16;
Le tampon result qui est passé à la fonction a une taille de 255 bits. Si votre résultat dépasse ceci, ne vous inquiétez pas de l'allocation de mémoire pour ce résultat.

Si votre fonction de chaînes de caractères a besoin de retourner une chaîne de caractères plus grande que 255 bits, vous devez allouer de l'espace pour cela avec malloc() dans votre fonction xxx_init() . Vous pouvez stocker la mémoire allouée dans le buffer ptr de la structure UDF_INIT pour être ré-utilisée par les appels futurs de xxx() . Appel des UDF .

Pour indiquer une valeur de retour NULL dans la fonction principale, mettez is_null à 1 :

*is_null = 1;
Pour indiquer une erreur retournée dans la fonction principale, mettez le paramètre error à 1 :

*error = 1;
Si xxx() met *error à 1 pour chaque ligne, la valeur de la fonction est NULL pour la ligne en question et pour chaque ligne suivante traitée par le processus dans lequel XXX() est invoqué. ( xxx() ne sera même pas appelé pour les lignes suivantes.) Remarque : dans les versions antérieures à 3.22.10, vous devez définir *error et *is_null :

*error = 1;
*is_null = 1;

<< Valeurs de retour et gestion d'erreurs. >>
Traitement des arguments Ajouter une nouvelle fonction définie par l'utilisateur ( UDF ) Compiler et installer des fonctions utilisateurs