mnesia table: mnemosyne query
Emmanuelle Bernard
ebernard@REDACTED
Wed Oct 27 22:45:12 CEST 1999
Hi!
I've the following code:
in the file: projet.hrl
-record (domaine, { nom, ip , type }).
in the file: projet.erl
-module(projet).
-copyright('Copyright (c) 1991-97 Ericsson Telecom AB').
-export([ nouv_table/1 , insert_ordi/2 , essai/0]).
-include("projet.hrl").
-include_lib("mnemosyne/include/mnemosyne.hrl").
nouv_table(Nom_Table) ->
mnesia:create_table(Nom_Table,[{record_name,domaine},{disc_copies,
[node()]}, {attributes, record_info(fields, domaine)}]).
insert_ordi(Tuple,Where) ->
Fun = fun() ->
mnesia:write(Where,Tuple,write)
end,
mnesia:transaction(Fun).
essai() ->
Handle=
query
[U.ip || U <- table(domaine),
U.nom = 4]
end,
Answer =
mnesia:transaction(
fun() ->
mnemosyne:eval(Handle)
end)
.
In the shell:
21> c(projet).
{ok,projet}
22> projet:nouv_table(ecole).
{atomic,ok}
23> projet:insert_ordi({domaine,4,5,6},ecole).
{atomic,ok}
24>tv:start().
<0.129.0>
25>projet:essai().
{aborted,{no_exists,domaine}}
// if I replace by "U <- table(ecole)" in the projet.erl file
it doesn't want to compile:
26> c(projet).
./projet.erl:112: the record "ecole" is undefined
./projet.erl:124: function essai/0 undefined
error
How can I ask it to search in the table "ecole" (that has a "domaine"
record) with the mnemosyne query?
Moreover, when I check my tables with tv, they are empty, even if I've
written anything in.
Can anyone help me?
thanks
Emmanuelle
More information about the erlang-questions
mailing list