我是Erlang的新手,
我正在尝试使用erlang进行odbc程序
步骤1:-启动odbc
步骤2:-如果odbc已启动(即odbc:connect())。
否则什么都不做
odbc:start()。返回两种类型的值,
如果首次连接返回{ok}
如果已连接,则返回{error,{already_started,odbc}}
如何处理这两种类型的返回值,
如何编写以下程序
-module(test).
-export([init/0])
init()->
return_value = odbc:start(),
if
return_value == {ok} ->
{ok1, Ref1} = odbc:connect("DSN=mysqlserver;UID=test;PWD=test", []),
return_value == {error, {already_started,odbc}}->
do_nothing
true ->
return {error,something_wrong}
end.
-module(test).
-export([init/0])
init()->
return_value = odbc:start(),
if
return_value == {ok} ->
{ok1, Ref1} = odbc:connect("DSN=mysqlserver;UID=test;PWD=test", []),
return_value == {error, {already_started,odbc}}->
do_nothing
true ->
return {error,something_wrong}
end.
答案 0 :(得分:0)
我已经使用case语句来处理返回。
-module(test).
-export([init/0]).
init()->
case odbc:start() of
ok ->
io:fwrite("Started ~n");
{error,{already_started,odbc}} ->
io:fwrite("Already Connceted ~n")
end.
在终端
2> c(test).
{ok,test}
3> test:init().
Started
ok
4> test:init().
Already Connceted
ok
这是正确的方法吗?