如何从Mnesia获取数据并由Yaws打印

时间:2014-05-14 14:07:57

标签: erlang mnesia yaws

请帮助查找有关在Erlang应用程序上构建的信息什么可以打印来自Mnesia by Yaws的各种信息

致以最诚挚的问候,非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

现在我通过这段代码解决:

Mnesia查询:

lookup_artists() ->
    Fun = fun() ->
    %       mnesia:read({sensors,Id})
            Query = #artists{ artist_id = '$1', artist = '$2', _ = '_'},
            mnesia:select(artists, [{Query, [], ['$$']}])
    end,
    mnesia:transaction(Fun).

和YAWS文件:

<html>
<h1>Test query</h1>
<erl>
out(A) ->
AddTd = fun(Val) ->
%        {td, [], integer_to_list(Val)}
io:format("~n ~p:~p GET Request Response ~p ~n", [?MODULE, ?LINE, Val]),

case is_integer(Val) of
    true  -> {td, [], integer_to_list(Val)};
    false -> {td, [], Val}
end
        end,
AddTr = fun(Val) ->
                {tr, [], lists:map(AddTd, Val)}
        end,
{atomic, Accounts} = wmb2:lookup_artists(),
{ehtml, [{table, [],
         lists:append([[{tr, [], [{td, [], "ID"},
                                  {td, [], "Artist"}]}], 
                       lists:map(AddTr, Accounts)])},
        {p, [], {b, [], f("Total: ~w", [length(Accounts)])}}]}.
 </erl>
 <p><a href="index.yaws">Index</a></p>
 </html>

不知道......它的代码是否合适,但工作得很好:)

答案 1 :(得分:0)

Yaws是一个网络服务器,Mnesia是一个DBMS。现在,您首先需要学习Erlang,然后学习如何从mnesia数据库中读取,写入,更新和删除。 Yaws和mnesia可以在同一个erlang VM中运行,总之,mnesia包含在每个标准的erlang版本中。

当您安装偏航时,在通常情况下,它将使用已安装的Erlang VM运行,在同一实例中,您可以启动mnesia并执行您想要的操作。你的问题相当广泛/含糊,但我想我会把你送到一本二郎书。