自分のためのまとめブログ

2013年04月

qlcモジュールで条件を指定する

qlc:q/1,2をだいたいは使う。

 基本的な文法は以下。

[Expression || Qualifier1, Qualifier2, ...]

 -record(test, { x0, x1, x2, x3}).というレコードでデータを保存している場合。
// Aという変数を受けている場合。
qlc:q([ {X#test.x0, X#test.x1, X#test.x3} ||  % ヒットしたデータの何を返すかを指定する
X <- mnesia:table(test),
Y <- mnesia:table(test2),
X#test.x0 > 470,
X#test.x2 =:= Y#test2.x2
]).
 
attributes, recordのフィールドは必須? 

初期設定

mnesia:scheme()

mnesia:create_table 

以下はどれもレコードが必要となる。

データの読み込み


条件付きで使いたい
qlcモジュールを使ってSQLみたいに条件を指定できる
ただし、qlcモジュールを使うためには、qlcのヘッダファイルを以下のようにインクルードする。

-include_lib(

-include_libはC言語の#include <>みたいなもの。
code:lib_dir()で、どこのパスかはわかる。

-includeはC言語の#include ""みたいなもの。

qlc以外にもselectが使えるが、こちらは条件の指定方法がまた違うらしい。
さらに、少ないデータを扱う場合は、selectの方が速度的には有利らしい。

データの書き込み
mnesia:transaction( fun() -> mnesia:write(#record) end).
データの削除 

このページのトップヘ