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()
. See
Section 27.2.3.1, « Fonctions utilisateur : appeler des fonctions simples ».
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;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.