OPTIONAL
SYNOPSIS
        int * db_handles()

BESCHREIBUNG
        Result ist ein Array mit allen aktiven Verbindungshandles zum
        SQL-Server. Das Array ist nach der Zeit der letzten Aktion sortiert:
        das zuletzt genutzte Handle kommt an erster Stelle. Sind keine
        Verbindungen aktiv, ist das Array leer.

        Die Funktion ist nur verfuegbar wenn der Driver mit
        mySQL-Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
        __MYSQL__ definiert.

        Die Efun ist privilegiert als ("mysql", "db_handles").

GESCHICHTE
        Eingefuehrt in LDMud 3.2.9.
        LDMud 3.2.11 machte die Efun privilegiert.

SIEHE AUCH
        db_affected_rows(E), db_conv_string(E), db_close(E), db_coldefs(E),
        db_connect(E), db_error(E), db_exec(E), db_fetch(E), db_insert_id(E),
        mysql(C), privilege_violation(M)
