我正在构建一个读取Sqlite Db的Tcl应用程序。目前,我可以使用Tcl前端将数据输入数据库。现在,我试图弄清楚如何在Tcl前端显示Sqlite Db中的数据。
经过一些研究后,我发现树视图小部件可以很好地满足我的需求。我现在有以下代码:
set z1 [ttk::treeview .c1.t1 -columns {1 2} -show headings]
$z1 heading #1 -text "First Name"
$z1 heading #2 -text "Last Name"
proc Srch {} {global z1
sqlite3 db test.db
pack $z1
db close
}
执行“Srch”程序(按钮事件)时,将显示树视图(z1),标题为First Name和Last Name。此外,Sqlite Db连接,然后关闭。
我想在连接到Db和打包树视图(z1)之间添加从Sqlite Db填充树视图的代码。有没有人知道使用Sqlite中的数据填充Tcl树视图的正确语法?
答案 0 :(得分:2)
最好这样做:
proc Srch {} {
global z1
pack $z1
foreach col {first last} name {First Last} {
$z1 heading $col -text $name
}
sqlite3 db test.db
db eval {SELECT first,last FROM t1} {
$z1 insert {} end -values [list $first $last]
}
db close
}
这使用了SQLite与Tcl完全集成的事实。
答案 1 :(得分:1)
经过几个小时的反复试验,我终于想出了如何使用sqlite数据填充树视图小部件。不幸的是,我找不到任何网络资源,以防万一其他人有这个问题,答案如下:
set z1 [ttk::treeview .c1.t1 -columns {first last} -show headings]
proc Srch {} {
global z1
sqlite3 db test.db
pack $z1
set data [db eval {SELECT * FROM t1}]
foreach col {first last} name {First Last} {
.c1.t1 heading $col -text $name
}
foreach {first last} $data {
.c1.t1 insert {} end -values [list $first $last]
}
db close
}
基本上,z1是多列列表(树),Srch是按钮驱动程序。执行时,树将填充对应于每列的名和姓。