Non riesco a trovare alcuna documentazione o esempi per questo. Finora, posso connettermi con successo, però, non conosco la sintassi per selezionare e restituire i dati.Come selezionare i dati tramite ODBC da Elixir?
:odbc.start()
{:ok, conn} = :odbc.connect('DSN=mydsn;UID=myuid;PWD=mypwd', [])
:odbc.execute_stmt(conn, 'select count(*) from mytable')
:odbc.stop()
** (UndefinedFunctionError) funzione non definita:: odbc.execute_stmt/2 (ODBC): odbc.execute_stmt (#PID < 0.85.0>, 'select count (*) from mytable')
aggiornamento 10/6/2015
ho trovato come fare questo. Credo di non aver trovato alcuna documentazione su questo per Elixir, perché Elixir semplicemente fa un pass-through alla libreria di Erlang.
In ogni caso è sql_query, o select_count:
{:selected, colNames, rows} = :odbc.sql_query(conn, 'select count(*) from mytable')
{: selezionato, [ 'count'], [{ '182'}]}
{:ok, count} = :odbc.select_count(conn, 'select * from mytable')
{: ok, 182}
aggiornamento 10/7/2015
Ecco il mio codice finale, che credo sia più idiomatica:
:odbc.start()
case :odbc.connect('DSN=mydsn;UID=#{System.get_env("MY_UID")};PWD=#{System.get_env("MY_PASSWORD")}', []) do
{:ok, conn} ->
case :odbc.sql_query(conn, 'select count(*) from mytable') do
{:selected, _colNames, [{count}]} -> IO.puts "count = #{count}"
{:error, err} -> {:error, err}
end
{:error, err} -> {:error, err}
end
:odbc.stop()