package require sqlite3
package require struct::matrix
package require report
package require textutil
sqlite3 ssdb stats.db
::report::defstyle resultlist {{n 1}} {
set templ_d [lreplace [lreplace \
[split "[string repeat " x" [columns]] " x] \
0 0 {}] end end {}]
set templ_tc [lreplace [lreplace \
[split "[string repeat " x=x" [columns]] " x] \
0 0 {}] end end {}]
data set $templ_d
topdata set [data get]
topcapsep set $templ_tc
topcapsep enable
tcaption $n
}
::struct::matrix m
set thisrow 0
ssdb eval "select * from sqlite_master;" x {
set thiscol 0
if { $thisrow == 0 } {
set ncols [llength $x(*)]
m add columns $ncols
m add row
foreach col $x(*) {
m set cell $thiscol $thisrow $col
incr thiscol
}
incr thisrow
set thiscol 0
}
m add row
foreach col $x(*) {
m set cell $thiscol $thisrow [::textutil::untabify2 $x($col) 4]
incr thiscol
}
incr thisrow
set nrows $thisrow
}
::report::report r $ncols style resultlist
puts [r printmatrix m]
m destroy
r destroy
::report::rmstyle resultlistResults in (for an odd little database I happen to have lying around):
type name tbl_name rootpage sql
===== =========================== ======== ======== =======================================
table rainfall rainfall 2 CREATE TABLE rainfall (
day VARCHAR PRIMARY KEY
, mmrain FLOAT
)
index sqlite_autoindex_rainfall_1 rainfall 3
table weight weight 4 CREATE TABLE weight (
person VARCHAR
, day VARCHAR
, kg FLOAT
, PRIMARY KEY (
person
, day)
)
index sqlite_autoindex_weight_1 weight 5
table bp bp 6 CREATE TABLE bp (
person VARCHAR
, day VARCHAR
, seq INTEGER
, sys FLOAT
, dia FLOAT
, PRIMARY KEY (
person
, day
, seq
)
)
index sqlite_autoindex_bp_1 bp 7