2009-09-15 5 views
1

Sqlite Db를 읽는 Tcl 애플리케이션을 구축 중입니다. 현재 Tcl 프론트 엔드를 사용하여 데이터베이스에 데이터를 입력 할 수 있습니다. 이제, Tcl 프론트 엔드에서 Sqlite Db 내에서 데이터를 표시하는 방법을 알아 내려고 노력 중입니다.Tcl Treeview에 Sqlite 데이터 채우기

약간의 연구 끝에 Treeview 위젯이 내 요구에 잘 맞을 것으로 나타났습니다.

은 "SRCH"절차가 실행
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가 연결되면 닫힙니다.

Db에 연결하고 treeview (z1)을 패킹하는 사이에 Sqlite Db의 트리 뷰를 채울 코드를 추가하려고합니다. 누구든지 Sqlite에서 데이터로 Tcl treeview를 채우는 올바른 구문을 알고 있습니까?

답변

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 버튼 구동 절차입니다. 트리가 실행되면 각 열에 해당하는 이름과 성으로 트리가 채워집니다.

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와 매우 잘 통합 사실을 사용합니다.

관련 문제