当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang string_to_handle(QueryString)用法及代码示例


string_to_handle(QueryString) -> QH | Error
string_to_handle(QueryString, Options) -> QH | Error
string_to_handle(QueryString, Options, Bindings) -> QH | Error
类型:
QueryString = string()
Options = [Option] | Option
Option = 
    {max_lookup, MaxLookup} |
    {cache, cache()} |
    cache |
    {join, Join} |
    {lookup, Lookup} |
    {unique, boolean()} |
    unique
MaxLookup = integer() >= 0 | infinity
Join = any | lookup | merge | nested_loop
Lookup = boolean() | any
Bindings = erl_eval:binding_struct()
QH = query_handle()
Error = {error, module(), Reason}
Reason = erl_parse:error_info() | erl_scan:error_info()

字符串版本q/1,2。当计算查询句柄时,由解析转换创建的乐趣被解释为erl_eval(3)。查询字符串是一个以句点结尾的单个 QLC。

例子:

1> L = [1,2,3],
Bs = erl_eval:add_binding('L', L, erl_eval:new_bindings()),
QH = qlc:string_to_handle("[X+1 || X <- L].", [], Bs),
qlc:eval(QH).
[2,3,4]

string_to_handle(QueryString) 相当于 string_to_handle(QueryString, [])

string_to_handle(QueryString, Options)相当于string_to_handle(QueryString, Options, erl_eval:new_bindings()).

当从 Erlang 外部调用时,该函数可能主要有用,例如从用 C 编写的驱动程序。

注意

以这种方式创建的查询句柄可能比直接通过创建查询句柄的性能更差q/1,2.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 string_to_handle(QueryString) -> QH | Error。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。