2016-01-28 1 views
2

Je suis nouveau à Erlang et pian ... Je suis en train de se connecter à une base de données MySQL, mais je ne suis pas sûr de quelques choses ..Comment se connecter à la base de données MySQL avec Erlang, pian

Questions.
1. Ai-je besoin d'une bibliothèque supplémentaire pour me connecter à la base de données mysql avec Erlang?
2. Comment puis-je lister les pilotes de base de données disponibles avec Erlang?

J'ai essayé ce code pour me connecter.

application:start(odbc), 
ConnString = 
    "Driver={MySQL ODBC 5.1 Driver};" ++ 
    "Server=localhost;Database=db;" ++ 
    "User=root;Password=2eklmss;" ++ 
    "Option=3;", 
{ok, Conn} = odbc:connect(ConnString, []), 
Results = odbc:sql_query(Conn, "SELECT * FROM db"), 
{html,"Something here."}. 

{Je ne suis pas sûr de cette ligne

qui est la raison pour laquelle je posais la question 2th}

et avec l'erreur suivante:

ERROR erlang code threw an uncaught exception: 
File: /Users/username/Terminal/WebServerA/var/yaws/www/index.yaws:3 
Class: error 
Exception: undef 
Req: {http_request,'GET',{abs_path,"/"},{1,1}} 
Stack: [{odbc,connect, 
       ["Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=db;User=root;Password= 2eklmss;Option=3;", 
       []], 
       []}, 
     {m22,out,1, 
      [{file,"/Users/username/.yaws/yaws/default/m22.erl"}, 
       {line,19}]}, 
     {yaws_server,deliver_dyn_part,8, 
        [{file,"yaws_server.erl"},{line,2851}]}, 
     {yaws_server,aloop,4,[{file,"yaws_server.erl"},{line,1255}]}, 
     {yaws_server,acceptor0,2,[{file,"yaws_server.erl"},{line,1078}]}, 
     {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}] 

J'ai supprimé tous les codes et seulement à gauche cette ligne.

out(A) -> 
    application:start(odbc). 

L'erreur suivante est survenue:

yaws code at /Users/username/Terminal/WebServerA/var/yaws/www/index.yaws:3 crashed or ret bad val:{error, 
                             {"no such file or directory", 
                             "odbc.app"}} 
Req: {http_request,'GET',{abs_path,"/"},{1,1}} 
+0

L'erreur indique qu'il ne peut pas trouver l'application ODBC dans son chemin. Il semble donc qu'il y ait un problème avec votre installation Erlang/OTP. –

Répondre

2

L'erreur dit qu'il ne peut pas trouver une application odbc dans son chemin. Il semble donc qu'il y ait un problème avec votre installation Erlang/OTP. Comme l'application Erlang ODBC dépend de produits tiers, il y a quelques notes ici:

  • Vous devez vous assurer qu'un pilote ODBC est installé.
  • Vous devrez peut-être définir des variables d'environnement et des chemins d'accès aux valeurs appropriées.
  • Si vous avez construit Erlang à partir de la source, vous devrez peut-être fournir le chemin d'accès à vos bibliothèques ODBC en utilisant --with-odbc=PATH.

Cette manual pourrait être utile sur la façon de compiler ODBC sous Unix.

Aussi, je suggère de jeter un oeil à Emysql comme une alternative tierce stable.