我发现在TCL中为Sqlite(https://github.com/pawelsalawa/sqlitestudio/wiki/ScriptingTcl)编写函数。
我想在sqlite(http://sqlite.org/tclsqlite.html)的官方页面中找到一个基本的例子:
{{#bs-navbar type="dark" class="d-flex" position="fixed-top" onCollapse=(action (mut collapsed) true) onExpand=(action (mut collapsed) false) as |navbar|}}
{{navbar.toggle}}
{{#navbar.content}}
{{#navbar.nav as |nav|}}
{{#link-to "index" class="navbar-brand"}}{{inline-svg "Logo.svg"}}{{/link-to}}
{{#nav.item}}{{#nav.link-to "home"}}Home{{/nav.link-to}}{{/nav.item}}
{{#nav.item}}{{#nav.link-to "test"}}Test{{/nav.link-to}}{{/nav.item}}
{{#nav.item}}{{#nav.link-to "test2"}}Test 2{{/nav.link-to}}{{/nav.item}}
{{/navbar.nav}}
{{#navbar.nav class="ml-auto" as |nav|}}
{{#if bIsLoggedIn}}
{{#nav.dropdown class="user-drop" as |dd|}}
{{#dd.toggle}}
<div class="avatar"><img src={{model.avatar}} width="32" height="32" alt=""></div>
<div class="user">{{model.user}} <span class="caret"></span></div>
{{/dd.toggle}}
{{#dd.menu as |ddm|}}
{{#ddm.item}}{{#ddm.link-to "index"}}Home{{/ddm.link-to}}{{/ddm.item}}
{{#ddm.item}}{{#ddm.link-to "index"}}Test{{/ddm.link-to}}{{/ddm.item}}
{{/dd.menu}}
{{/nav.dropdown}}
{{else}}
<div class="login-button pr-3 text-center">
<a class="btn btn-primary btn-lg" href="#" role="button">Login</a>
</div>
{{/if}}
{{/navbar.nav}}
{{/navbar.content}}
{{/bs-navbar}}
我收到以下错误:
db eval {SELECT * FROM MyTable ORDER BY MyID} values {
parray values
puts ""
}
非常欢迎帮助:)
答案 0 :(得分:3)
SqliteStudio似乎没有完全初始化Tcl,正如您期望的那样来自非嵌入式安装:
使用外部Tcl包或模块是不可能的,因为Tcl 解释器未使用&#34; init.tcl&#34;初始化。
请参阅Wiki。
标准Tcl源init.tcl
,早期作为Tcl解释器初始化的一部分。反过来,init.tcl
为autoloading注册了许多Tcl过程。 parray
是懒惰获得的触发之一。
我不熟悉SqliteStudio。为什么不坚持使用sqlite的标准Tcl frontend,它为您提供完整的Tcl并附带免费的Tcl发行版?但这当然取决于你的要求。
也就是说,您可以尝试在SqliteStudio的嵌入式Tcl中强制加载init.tcl
,但我不知道(并且无法测试)分发是否尚未修剪这些脚本或它们是否有效地重新定位。从我的头顶(未经测试):
source [file join $tcl_library init.tcl]
# ...
db eval {SELECT * FROM MyTable ORDER BY MyID} values {
parray values
puts ""
}