LINUX.ORG.RU

А тут кто-нибудь балуется Erlang'ом?


0

0

Пытаюсь научиться писать проограммы сложности хелло волд и постоянно натыкаюсь на загадочности, не исчезающие после чтения документации.

Два часа потратил пытаясь напистаь программу сохраняющкю запись в mnesia - и проиграл. Программка:

-module(m2).
-export([start/0]).
-record(test, {id, data}).
start() ->
io:format("Node: ~w~n", [node()]),
io:format("schema: ~w~n", [mnesia:create_schema([node()])]),
ok = mnesia:start(),
io:format("create: ~w~n", [mnesia:create_table(test,
[
{disc_copies, [node()]},
{type, bag},
{attributes, record_info(fields, test)}])]),
io:format("write: ~w~n", [mnesia:transaction(
fun() -> mnesia:write(#test{id = 1, data = "aaaa"}) end)]).

Запускаю.
$ erl -noshell -s m2 start -s init stop -sname node
Node: 'node@seva-work'
schema: ok
create: {atomic,ok}
write: {atomic,ok}

Работает. Еще раз:
$ erl -noshell -s m2 start -s init stop -sname node
Node: 'node@seva-work'
schema: {error,{'node@seva-work',{already_exists,'node@seva-work'}}}
create: {aborted,{already_exists,test}}
write: {aborted,{no_exists,test}}
# как это, куда она делась ?


★★★★★

А, нашел наконец-то.mnesia:wait_for_tables([test], infinity)

sv75 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.