我正在构建一个读取sqlite数据库的tcl应用程序。目前,我可以使用tcl前端将数据输入数据库。现在,我试图找出如何在tcl前端的sqlite数据库中显示数据。
经过一点研究,我发现treeview小部件可以很好地满足我的需要。我现在有以下代码:
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”过程(按钮事件)时,treeview(z1)将显示标题first name和last name。另外,sqlite数据库连接,然后关闭。
我想在连接到数据库和打包treeview(z1)之间添加从sqlite数据库填充treeview的代码。有人知道用sqlite中的数据填充tcl treeview的正确语法吗?
最佳答案
最好这样做:
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的集成非常好。