#!/usr/local/bin/tclsh8 # # dbview.cgi # # Web script to build a dynamic page based on a miniDB.tcl text database. # Developed as a way to view BN experiment results. # # 1998jul27 dpwe@icsi.berkeley.edu # $Header: /n/yam/da/dpwe/public_html/bn/RCS/dbview.cgi,v 1.2 1998/07/28 06:54:18 dpwe Exp $ # Load web util fns source "./cgi-utils.tcl" # includes setting up machtype package require Dpwe_Utilfns #package require MiniDB source "miniDB.tcl" # Do we put a query form at the bottom? set showform 1 # Retrieve the fields set db "" set filter "" set cols "" set sort "" set back "" set vars "" if { [set msg [CheckGetEnvironment]] == ""} { set vars [GetGetVars] } # Default: no db and no colnames set colnames "" # Title relates to database file set name "dbview on $db" puts "Content-type: text/html\n" puts "" puts "" puts "$name" puts "" puts "" puts "

$name

" #puts "

(Tcl-version is $tcl_version)

" puts "
" proc Exit {{code 0}} { # cleanup and exit puts "" exit $code } if {[lsearch -exact $vars "db"] != -1} { # We have a database - output the record set dbs [DBRead $db] # Capture colnames maybe for form below lassign $dbs colnames data set ntotrec [llength $data] # First prune the records by the conditions # e.g. set filter "net=*4000* && ftr=plp12N" set dbs [DBSelectRows $dbs $filter] # Apply the sorting - in reverse order, so predominant search is first foreach sortcol [reverse $sort] { set dbs [DBSort $dbs $sortcol] } # Apply the column selection set dbs [DBSelectCols $dbs $cols] # Little preamble puts "" puts "" puts "" puts "" puts "" puts "" puts "
Generated:[clock format [clock sec]]
Database:$db
Filter:$filter
Display cols:$cols
Sort cols:$sort
" puts "

Showing [llength [lindex $dbs 1]] of $ntotrec records. Click on a column title to sort by that column:

" # What would be the URL to get back here, with a "%s" to fill in cols? set myurl "$env(SCRIPT_NAME)?db=[Gettify $db]&filter=[Gettify $filter]&cols=[Gettify $cols]&sort=%s" # Format to HTML set tbl [DBFormatHTML $dbs $myurl] # Output puts $tbl } if {$back != ""} { puts "

Back...

" } if {$showform} { puts "
" puts "
" puts "

Choose your database view parameters:

" if {$colnames != ""} { puts "

Column names for database $db are:
" puts "$colnames

" } if {$db != ""} { set datfiles [glob -nocomplain [file dirname $db]/*[file extension $db]] puts "

Data files in this directory:
" puts "$datfiles

" } puts "" puts "" puts "" puts "" puts "" puts "
Database:
Filter conditions:
Column(s) displayed:
Sort column(s):
" puts "" puts "
" } Exit