2009-09-15 86 views
1

我正在構建一個讀取Sqlite Db的Tcl應用程序。目前,我可以使用Tcl前端將數據輸入到數據庫中。現在,我想弄清楚如何在Tcl前端顯示Sqlite Db中的數據。使用Sqlite數據填充Tcl Treeview

經過一點研究,我發現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 
} 

當執行「檢索」程序(按鈕事件),樹形視圖(Z1)出現與標題名字和姓氏。此外,Sqlite Db連接,然後關閉。

我想添加代碼,從Sqlite Db中填充樹狀視圖,連接到Db和打包樹視圖(z1)之間。有誰知道使用Sqlite中的數據填充Tcl treeview的正確語法嗎?

回答

1

經過幾個小時的反覆試驗,我終於想出瞭如何用sqlite數據填充treeview小部件。不幸的是,我無法找到任何網絡資源,因此如果任何人有這個問題,答案如下:

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是按鈕驅動程序。執行時,樹會填入與每列對應的名字和姓氏。

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的集成了非常漂亮確實是事實。