#!msqlwish -f

# $Id: test.tk,v 1.2 1994/07/28 23:18:26 pepers Exp $
#
# $Log: test.tk,v $
# Revision 1.2  1994/07/28  23:18:26  pepers
# Made to work with new interface
#
# Revision 1.1  1994/07/28  22:45:14  pepers
# Test Tk interface
#
# Revision 1.2  1994/07/27  22:43:30  pepers
# Fixed log files
#

wm positionfrom . user
wm sizefrom . ""
wm maxsize . 1152 910
wm title . {mSQL Test}

frame .f0 -borderwidth 2 -relief raised
frame .f1 -borderwidth 2 -relief raised
frame .f2 -borderwidth 2 -relief raised

label .f0.label -text "Current Database:"
entry .f0.entry -relief sunken -textvariable cur_db

pack append .f0 \
    .f0.label {left frame center } \
    .f0.entry {right frame center expand fillx}

frame .f1.f0 -borderwidth 2 -relief raised
label .f1.f0.label -relief ridge -text "Databases:"
listbox .f1.f0.listbox -geometry 18x10 -relief raised \
	-yscrollcommand { .f1.f0.scrollbar set }
scrollbar .f1.f0.scrollbar -command { .f1.f0.listbox yview } -relief raised

pack append .f1.f0 \
    .f1.f0.label {top frame center expand fillx} \
    .f1.f0.listbox {left frame center} \
    .f1.f0.scrollbar {right frame center expand filly}

frame .f1.f1 -borderwidth 2 -relief raised
label .f1.f1.label -relief ridge -text "Tables:"
listbox .f1.f1.listbox -geometry 18x10 -relief raised \
	-yscrollcommand { .f1.f1.scrollbar set }
scrollbar .f1.f1.scrollbar -command { .f1.f1.listbox yview }

pack append .f1.f1 \
    .f1.f1.label {top frame center expand fillx} \
    .f1.f1.listbox {left frame center} \
    .f1.f1.scrollbar {right frame center expand filly}

frame .f1.f2 -borderwidth 2 -relief raised
label .f1.f2.label -relief ridge -text "Fields:"
listbox .f1.f2.listbox -geometry 30x10 -relief raised \
	-yscrollcommand { .f1.f2.scrollbar set }
scrollbar .f1.f2.scrollbar -command { .f1.f2.listbox yview }

pack append .f1.f2 \
    .f1.f2.label {top frame center expand fillx} \
    .f1.f2.listbox {left frame center } \
    .f1.f2.scrollbar {right frame center expand filly}

pack append .f1 \
    .f1.f0 {left frame center} \
    .f1.f1 {left frame center} \
    .f1.f2 {left frame center}

frame .f2.f0 -borderwidth 2 -relief raised
label .f2.f0.label -text "Query:"
entry .f2.f0.entry -relief sunken -textvariable query

pack append .f2.f0 \
    .f2.f0.label {left frame center } \
    .f2.f0.entry {right frame center expand fillx}

frame .f2.f1 -borderwidth 2 -relief raised
text .f2.f1.text -wrap none

pack append .f2.f1 \
    .f2.f1.text {left frame center expand fillx filly}

pack append .f2 \
    .f2.f0 {top frame center expand fillx} \
    .f2.f1 {top frame center}

pack append . \
    .f0 {top frame center expand fillx} \
    .f1 {top frame center} \
    .f2 {right frame center expand fillx}

bind .f1.f0.listbox <Double-Button-1> {
    set choice [selection get]
    conn set database $choice
    set cur_db $choice
    .f1.f1.listbox delete 0 end
    foreach i [conn get tables] {
	.f1.f1.listbox insert end $i
    }
}

bind .f1.f1.listbox <Double-Button-1> {
    set choice [selection get]
    .f1.f2.listbox delete 0 end
    foreach i [conn get fields $choice] {
	.f1.f2.listbox insert end $i
    }
}

bind .f2.f0.entry <Key-Return> {
    if { $cur_db == "" } {
	.f2.f1.text insert end "**ERROR**  No database has been set\n\n"
    } else {
	.f2.f1.text insert end "Query: $query\n"
	set error [catch [list conn query $query] result]
	if { $error == 0 } {
	    set result [conn get rest]
	    .f2.f1.text insert end "Result: $result\n"
	} else {
	    .f2.f1.text insert end "**ERROR**  $result\n"
	}
	.f2.f1.text insert end "\n"
    }
}

msql connect conn
foreach i [ conn get databases ] {
    .f1.f0.listbox insert end $i
}
set cur_db ""
