PythonQ 240-8XX Bedienungsanleitung Seite 631

  • Herunterladen
  • Zu meinen Handbüchern hinzufügen
  • Drucken
  • Seite
    / 768
  • Inhaltsverzeichnis
  • LESEZEICHEN
  • Bewertet. / 5. Basierend auf Kundenbewertungen
Seitenansicht 630
610 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Um jeglichen Speicher zuzuweisen, der von der Hauptfunktion ben¨otigt
wird.
Um die maximale ange des Ergebnisses anzugeben.
Um (f¨ur REAL-Funktionen) die maximale Anzahl von Dezimalstellen
anzugeben.
Um festzulegen, ob das Ergebnis NULL sein darf oder nicht.
xxx_deinit() (optional)
Die Deinitialisierungsfunktion f¨ur xxx(). Sie sollte jeglichen Speicher freigeben
(deallozieren), der durch die Initialisierungsfunktion zugewiesen wurde.
Wenn ein SQL-Statement XXX() aufruft, ruft MySQL die Initialisierungsfunktion
xxx_init() auf, damit diese die notwendige Einrichtung vornehmen kann wie Argumente
pr¨ufen oder Speicherzuweisung. Wenn xxx_init() einen Fehler zur¨uckgibt, wird das
SQL-Statement mit einer Fehlermeldung a/jointfilesconvert/293675/bgebrochen, die Haupt- und Deinitialisierungs-
funktionen werden nicht aufgerufen. Ansonsten wird die Hauptfunktion xxx() f¨ur jede
Zeile aufgerufen. Nachdem alle Zeilen a/jointfilesconvert/293675/bgearbeitet sind, wird die Deinitialisierungsfunktion
xxx_deinit() aufgerufen, damit sie die erforderlichen Aufr¨aumarbeiten ausf¨uhren kann.
Alle Funktionen m¨ussen Thread-sicher sein (nicht nur die Hauptfunktion, sondern auch die
Initialisierungs- und Deinitialisierungsfunktionen). Das heißt, dass Sie keinerlei globale oder
statische Variablen zuweisen d¨urfen, die sich ¨andern! Wenn Sie Speicher brauchen, sollten
Sie ihn in xxx_init() zuweisen und in xxx_deinit() freigeben.
10.1.2.1 UDF-Aufruf-Sequenzen
Die Hauptfunktion sollte wie unten dargestellt deklariert werden. Beachten Sie, dass sich der
R¨uckgabetyp und der Parameter unterscheiden, abh¨angig davon, wie Sie die SQL-Funktion
XXX() deklarieren, damit sie STRING, INTEGER oder REAL im CREATE FUNCTION-Statement
zur¨uckgibt:
Bei STRING-Funktionen:
char *xxx(UDF_INIT *initid, UDF_ARGS *args,
char *result, unsigned long *length,
char *is_null, char *error);
Bei INTEGER-Funktionen:
long long xxx(UDF_INIT *initid, UDF_ARGS *args,
char *is_null, char *error);
Bei REAL-Funktionen:
double xxx(UDF_INIT *initid, UDF_ARGS *args,
char *is_null, char *error);
Die Initialisierungs- und Deinitialisierungsfunktionen werden wie folgt deklariert:
my_bool xxx_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
void xxx_deinit(UDF_INIT *initid);
Der initid-Parameter wird an alle drei Funktionen ¨ubergeben. Er zeigt auf eine UDF_INIT-
Struktur, die benutzt wird, um Informationen zwischen den Funktionen zu ¨ubermitteln.
Seitenansicht 630
1 2 ... 626 627 628 629 630 631 632 633 634 635 636 ... 767 768

Kommentare zu diesen Handbüchern

Keine Kommentare