我正在尝试实现一个为 MNesia 生成动态查询的函数。
例如,当使用这些参数调用函数时;
dyn_query(list, person, [name, age], ["jack", 21])
我想查询 MNesia 以在person表中列出名称为“jack”且年龄为21的项目。
我尝试通过使用 qlc:q(ListComprehension) 和 qlc:string_to_handle("ListComprehension") 来实现这一点。由于编译错误,第一次失败,编译器不允许我使用函数而不是 ListComprehentions 和变量而不是像“Item#Table.Field”这样的记录名称。第二次失败,因为 erl_eval 无法处理记录并抛出了 {undefined_record, person} 之类的异常。
我应该使用哪种方法?我该如何解决这些问题?还是我应该使用不同的方法?
谢谢。