0

我发现在 TCL 中为 Sqlite 编写函数(https://github.com/pawelsalawa/sqlitestudio/wiki/ScriptingTcl)。

我想玩一个在 sqlite 官方页面(http://sqlite.org/tclsqlite.html)中找到的基本示例:

db eval {SELECT * FROM MyTable ORDER BY MyID} values { 
    parray values
    puts ""
}

我收到以下错误:

Error while requesting the database « -- » : invalid command name "parray"

非常欢迎帮助:)

4

1 回答 1

3

SqliteStudio 似乎没有完全初始化 Tcl,正如您在非嵌入式安装中所期望的那样:

使用外部 Tcl 包或模块是不可能的,因为 Tcl 解释器不是用“init.tcl”初始化的。

维基

背景

标准 Tcl 源代码init.tcl,早期作为 Tcl 解释器初始化的一部分。init.tcl,反过来,注册了许多 Tcl procs 用于自动加载parray是那些懒惰获得的触发之一。

前进的道路

我不熟悉 SqliteStudio。为什么不坚持使用 sqlite 的标准Tcl 前端,它为您提供完整的 Tcl 并附带 Tcl 发行版免费的房子?但这当然取决于您的要求。

也就是说,您可以尝试init.tcl在 SqliteStudio 的嵌入式 Tcl 中强制加载,但我不知道(也无法测试)发行版是否没有修剪这些脚本或者它们是否被有效地重新定位。从我的头顶(未经测试):

source [file join $tcl_library init.tcl]
# ...
db eval {SELECT * FROM MyTable ORDER BY MyID} values { 
    parray values
    puts ""
}
于 2018-03-21T12:53:43.823 回答