2010-03-28 3 views
1

En utilisant le module mysql Erlang les fonctions externes sont exposées: De la présente cetteEn utilisant le module erlang mysql, comment une connexion à une base de données est-elle fermée?

%% External exports 
-export([start_link/5, 
    start_link/6, 
    start_link/7, 
    start_link/8, 

    start/5, 
    start/6, 
    start/7, 
    start/8, 

    connect/7, 
    connect/8, 
    connect/9, 

    fetch/1, 
    fetch/2, 
    fetch/3, 

    prepare/2, 
    execute/1, 
    execute/2, 
    execute/3, 
    execute/4, 
    unprepare/1, 
    get_prepared/1, 
    get_prepared/2, 

    transaction/2, 
    transaction/3, 

    get_result_field_info/1, 
    get_result_rows/1, 
    get_result_affected_rows/1, 
    get_result_reason/1, 

    encode/1, 
    encode/2, 
    asciz_binary/2 
    ]). 

, il ne voit pas comment fermer une connexion. Comment une connexion s'est-elle fermée?

+0

Notez que vous pouvez formater le code code par celui-ci un quatre espaces indenter supplémentaires. Le bouton "101 \ n010" fera cela pour vous. – outis

Répondre

1

J'ai rapidement parcouru le code mysql_driver. Vous avez raison - il ne semble pas avoir de mécanisme pour fermer les connexions ouvertes. En fait, je ne vois même pas le code de nettoyage approprié pour fermer les sockets ouverts quand un serveur gen_server se met à l'arrêt (dans la méthode terminate).

+0

Est-ce vraiment nécessaire? Les prises seront fermées lorsque le processus se termine. Quel autre nettoyage voulez-vous dire? –

1
{Type, Result} = mysql:start_link(P1, Host, User, Passwd, DB), 

stop(Result) ferme la connexion

Questions connexes