我正在构建一个读取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的集成非常好。

10-05 23:03