Die Initialisierungsfunktion sollte 0
zurückgeben, wenn kein Fehler auftritt, und ansonsten
1
. Kommt es zu einem Fehler, so sollte
xxx_init()
eine auf null endende
Fehlermeldung im Parameter message
speichern. Die Meldung wird an den Client zurückgegeben. Der
Puffer für Fehlermeldungen ist zwar
MYSQL_ERRMSG_SIZE
Zeichen lang, aber Sie
sollten dennoch versuchen, die Meldungen auf maximal 80
Zeichen zu begrenzen, damit sie auf die Breite eines normalen
Bildschirms passen.
Der Rückgabewert der Hauptfunktion xxx()
ist für long long
- und
double
-Funktionen der Funktionswert. Eine
String-Funktion sollte einen Zeiger auf das Ergebnis
zurückliefern und *result
und
*length
auf den Inhalt und die Länge des
Ergebniswerts einstellen. Zum Beispiel:
memcpy(result, "result string", 13); *length = 13;
Der result
-Puffer, der an die
xxx()
-Funktion übergeben wird, ist 255
Byte lang. Wenn Ihr Ergebnis hineinpasst, müssen Sie sich um
die Speicherzuweisung für Ergebnisse keine Gedanken machen.
Muss Ihre String-Funktion jedoch einen String zurückliefern,
der länger als 255 Byte ist, so müssen Sie den Speicher
dafür reservieren, indem Sie malloc()
in
Ihrer xxx_init()
- oder
xxx()
-Funktion aufrufen und den Speicher
dann in der xxx_deinit()
-Funktion wieder
freigeben. Sie können den reservierten Speicher auch in dem
ptr
-Slot in der
UDF_INIT
-Struktur speichern, um ihn für
zukünftige xxx()
-Aufrufe wiederverwenden
zu können. Siehe Abschnitt 26.3.4.1, „UDF-Aufrufsequenzen“.
Um den Rückgabewert NULL
in der
Hauptfunktion anzuzeigen, setzen Sie
*is_null
auf 1
:
*is_null = 1;
Um anzuzeigen, dass die Hauptfunktion einen Fehler
zurückgibt, setzen Sie *error
auf
1
:
*error = 1;
Wenn xxx()
den Wert von
*error
für irgendeine Zeile auf
1
setzt, ist der Funktionswert für die
aktuelle Zeile und alle folgenden Zeilen, die in der Anweisung
verarbeitet werden, in welcher XXX()
aufgerufen wird, gleich NULL
.
(xxx()
wird für die nachfolgenden Zeilen
noch nicht einmal aufgerufen.)
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.