diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pgaccess/README.pga | 10 | ||||
-rw-r--r-- | src/bin/pgaccess/index.html | 7 | ||||
-rw-r--r-- | src/bin/pgaccess/pgaccess.tcl | 205 | ||||
-rw-r--r-- | src/tools/RELEASE_CHANGES | 2 |
4 files changed, 154 insertions, 70 deletions
diff --git a/src/bin/pgaccess/README.pga b/src/bin/pgaccess/README.pga index 17c425d8764..f5a53500060 100644 --- a/src/bin/pgaccess/README.pga +++ b/src/bin/pgaccess/README.pga @@ -22,15 +22,15 @@ PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --------------------------------------------------------------------------- -PGACCESS 0.86 29 March 1998 +PGACCESS 0.88 7 June 1998 ================================ -I dedicate this program to my little 4 year daughter Ana-Maria and my wife -for their understanding. I hope they will forgive me for spending so many +I dedicate this program to my little daughters Ana-Maria and Emilia and to my +wife for their understanding. I hope they will forgive me for spending so many time far from them. -1.Why PGACCESS ? +1.Why PgAccess ? First of all because PostgreSQL lacks a graphical interface where you can manage your tables, edit them, define queries, sequences and @@ -77,7 +77,7 @@ pgaccess.tcl file. 4.What does it now ? -- Opens any database on a specified host at the specified port. +- Opens any database on a specified host at the specified port, username and password - Perform vacuum command. - Saves preferences in ~/pgaccessrc file diff --git a/src/bin/pgaccess/index.html b/src/bin/pgaccess/index.html index 0f8c8c0e005..7571218ffac 100644 --- a/src/bin/pgaccess/index.html +++ b/src/bin/pgaccess/index.html @@ -13,12 +13,13 @@ PgAccess - a database management tool for <A HREF="http://www.postgreSQL.org">Po <P>This program is protected by the following <A HREF="copyright.html">copyright</A> <LI> -<A HREF="pgaccess-0.86.tar.gz">Download the last version of PgAccess (press +<A HREF="pgaccess-0.88.tar.gz">Download the last version of PgAccess (press shift and click this link)</A>.</LI> -<P>Latest version of PgAccess is 0.86 , 29 March 1998 ! -<BR> +<P>Latest version of PgAccess is 0.88 , 7 June 1998 ! +<BR><br> +<font color='red'><b>NEW * NEW * NEW *</b></font> Precompiled libpgtcl and libpq binaries for i386 are <a href='ftp://ftp.flex.ro/pub/pgaccess'> here </a>!!! <BR> <CENTER><TABLE BORDER=3 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BGCOLOR="#FFB6C1" > <TR> diff --git a/src/bin/pgaccess/pgaccess.tcl b/src/bin/pgaccess/pgaccess.tcl index c999eca4afd..9bbc037369b 100644 --- a/src/bin/pgaccess/pgaccess.tcl +++ b/src/bin/pgaccess/pgaccess.tcl @@ -8,12 +8,16 @@ # global activetab; global dbc; +global username; +global password; global dbname; global host; global mw; global newdbname; global newhost; global newpport; +global newusername; +global newpassword; global pport; global pref; global qlvar; @@ -986,12 +990,14 @@ proc {load_pref} {} { global pref set retval [catch {set fid [open "~/.pgaccessrc" r]}] if {$retval} { - set pref(rows) 200 - set pref(tvfont) clean - set pref(autoload) 1 - set pref(lastdb) {} - set pref(lasthost) localhost - set pref(lastport) 5432 + set pref(rows) 200 + set pref(tvfont) clean + set pref(autoload) 1 + set pref(lastdb) {} + set pref(lasthost) localhost + set pref(lastport) 5432 + set pref(username) {} + set pref(password) {} } else { while {![eof $fid]} { set pair [gets $fid] @@ -1483,27 +1489,35 @@ if {$mw(row_edited)==$mw(nrecs)} { } proc {open_database} {} { -global dbc host pport dbname sdbname newdbname newhost newpport pref +global dbc host pport dbname username password newusername newpassword sdbname newdbname newhost newpport pref catch {cursor_watch .dbod} -if {[catch {set newdbc [pg_connect $newdbname -host $newhost -port $newpport]} msg]} { +if {$newusername!=""} { + set connres [catch {set newdbc [pg_connect -conninfo "host=$newhost port=$newpport dbname=$newdbname user=$newusername password=$newpassword"]} msg] +} else { + set connres [catch {set newdbc [pg_connect $newdbname -host $newhost -port $newpport]} msg] +} +if {$connres} { catch {cursor_arrow .dbod} show_error "Error connecting database\n$msg" } else { - catch {pg_disconnect $dbc} - set dbc $newdbc - set host $newhost - set pport $newpport - set dbname $newdbname - set sdbname $dbname - set pref(lastdb) $dbname - set pref(lasthost) $host - set pref(lastport) $pport - save_pref - catch {cursor_arrow .dbod; Window hide .dbod} - tab_click .dw.tabTables - # Check for pga_ tables - foreach {table structure} { pga_queries {queryname varchar(64),querytype char(1),querycommand text} pga_forms {formname varchar(64),formsource text} pga_scripts {scriptname varchar(64),scriptsource text} pga_reports {reportname varchar(64),reportsource text,reportbody text,reportprocs text,reportoptions text}} { - set pgres [pg_exec $dbc "select relname from pg_class where relname='$table'"] + catch {pg_disconnect $dbc} + set dbc $newdbc + set host $newhost + set pport $newpport + set dbname $newdbname + set username $newusername + set password $newpassword + set sdbname $dbname + set pref(lastdb) $dbname + set pref(lasthost) $host + set pref(lastport) $pport + set pref(lastusername) $username + save_pref + catch {cursor_arrow .dbod; Window hide .dbod} + tab_click .dw.tabTables + # Check for pga_ tables + foreach {table structure} { pga_queries {queryname varchar(64),querytype char(1),querycommand text} pga_forms {formname varchar(64),formsource text} pga_scripts {scriptname varchar(64),scriptsource text} pga_reports {reportname varchar(64),reportsource text,reportbody text,reportprocs text,reportoptions text}} { + set pgres [pg_exec $dbc "select relname from pg_class where relname='$table'"] if {[pg_result $pgres -numTuples]==0} { pg_result $pgres -clear sql_exec quiet "create table $table ($structure)" @@ -2430,22 +2444,21 @@ Window show .tiw set tiw(isunique) {} set tiw(isclustered) {} set tiw(indexfields) {} -pg_select $dbc "select attnum,attname,typname,attlen,usename,pg_class.oid from pg_class,pg_user,pg_attribute,pg_type where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (pg_class.relowner=pg_user.usesysid) and (pg_attribute.atttypid=pg_type.oid) order by attnum" rec { - set fsize $rec(attlen) - set ftype $rec(typname) - if {$ftype=="varchar"} { - incr fsize -4 - } - if {$ftype=="bpchar"} { - incr fsize -4 - } - if {$ftype=="text"} { - set fsize "" - } - if {$rec(attnum)>0} {.tiw.lb insert end [format "%-33s %-14s %-4s" $rec(attname) $ftype $fsize]} - set tiw(owner) $rec(usename) - set tiw(tableoid) $rec(oid) - set tiw(f$rec(attnum)) $rec(attname) +pg_select $dbc "select attnum,attname,typname,attlen,atttypmod,usename,pg_class.oid from pg_class,pg_user,pg_attribute,pg_type where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (pg_class.relowner=pg_user.usesysid) and (pg_attribute.atttypid=pg_type.oid) order by attnum" rec { + set fsize $rec(attlen) + set fsize1 $rec(atttypmod) + set ftype $rec(typname) + if { $fsize=="-1" && $fsize1!="-1" } { + set fsize $rec(atttypmod) + incr fsize -4 + } + if { $fsize1=="-1" && $fsize=="-1" } { + set fsize "" + } + if {$rec(attnum)>0} {.tiw.lb insert end [format "%-33s %-14s %-4s" $rec(attname) $ftype $fsize]} + set tiw(owner) $rec(usename) + set tiw(tableoid) $rec(oid) + set tiw(f$rec(attnum)) $rec(attname) } set tiw(indexlist) {} pg_select $dbc "select oid,indexrelid from pg_index where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_index.indrelid)" rec { @@ -2540,10 +2553,12 @@ if {$retval} { } proc {main} {argc argv} { -global pref newdbname newpport newhost dbc +global pref newdbname newpport newhost newusername newpassword dbc load libpgtcl.so catch {draw_tabs} load_pref +set newusername {} +set newpassword {} if {$argc>0} { set newdbname [lindex $argv 0] set newhost localhost @@ -2553,6 +2568,7 @@ if {$argc>0} { set newdbname $pref(lastdb) set newhost $pref(lasthost) set newpport $pref(lastport) + catch {set newusername $pref(lastusername)} open_database } wm protocol .dw WM_DELETE_WINDOW { @@ -2636,7 +2652,7 @@ proc vTclWindow.about {base} { label $base.l2 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -relief groove -text {A Tcl/Tk interface to PostgreSQL by Constantin Teodorescu} - label $base.l3 -borderwidth 0 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -relief sunken -text {vers 0.86} + label $base.l3 -borderwidth 0 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -relief sunken -text {vers 0.88} label $base.l4 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -relief groove -text {You will always get the latest version at: http://www.flex.ro/pgaccess @@ -2662,33 +2678,92 @@ proc vTclWindow.dbod {base} { ################### # CREATING WIDGETS ################### - toplevel $base -class Toplevel -cursor top_left_arrow + toplevel $base -class Toplevel \ + -cursor top_left_arrow wm focusmodel $base passive - wm geometry $base 282x128+353+310 + wm geometry $base 282x180+358+333 wm maxsize $base 1009 738 wm minsize $base 1 1 wm overrideredirect $base 0 wm resizable $base 0 0 + wm deiconify $base wm title $base "Open database" - label $base.lhost -borderwidth 0 -relief raised -text Host - entry $base.ehost -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable newhost - label $base.lport -borderwidth 0 -relief raised -text Port - entry $base.epport -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable newpport - label $base.ldbname -borderwidth 0 -relief raised -text Database - entry $base.edbname -background #fefefe -borderwidth 1 -highlightthickness 1 -selectborderwidth 0 -textvariable newdbname - button $base.opbtu -borderwidth 1 -command open_database -padx 9 -pady 3 -text Open - button $base.canbut -borderwidth 1 -command {Window hide .dbod} -padx 9 -pady 3 -text Cancel + label $base.lhost \ + -borderwidth 0 -relief raised -text Host + entry $base.ehost \ + -background #fefefe -borderwidth 1 -highlightthickness 1 \ + -selectborderwidth 0 -textvariable newhost + bind $base.ehost <Key-Return> { + focus .dbod.epport + } + label $base.lport \ + -borderwidth 0 -relief raised -text Port + entry $base.epport \ + -background #fefefe -borderwidth 1 -highlightthickness 1 \ + -selectborderwidth 0 -textvariable newpport + bind $base.epport <Key-Return> { + focus .dbod.edbname + } + label $base.ldbname \ + -borderwidth 0 -relief raised -text Database + entry $base.edbname \ + -background #fefefe -borderwidth 1 -highlightthickness 1 \ + -selectborderwidth 0 -textvariable newdbname + bind $base.edbname <Key-Return> { + focus .dbod.eusername + .dbod.eusername selection range 0 end + } + label $base.lusername \ + -borderwidth 0 -relief raised -text Username + entry $base.eusername \ + -background #fefefe -borderwidth 1 -highlightthickness 1 \ + -selectborderwidth 0 -textvariable newusername + bind $base.eusername <Key-Return> { + focus .dbod.epassword + } + label $base.lpassword \ + -borderwidth 0 -relief raised -text Password + entry $base.epassword \ + -background #fefefe -borderwidth 1 -highlightthickness 1 \ + -selectborderwidth 0 -textvariable newpassword -show "*" + bind $base.epassword <Key-Return> { + focus .dbod.opbtu + } + button $base.opbtu \ + -borderwidth 1 -command open_database -padx 9 -pady 3 -text Open + bind $base.opbtu <Key-Return> { + open_database + } + button $base.canbut \ + -borderwidth 1 -command {Window hide .dbod} -padx 9 -pady 3 \ + -text Cancel ################### # SETTING GEOMETRY ################### - place $base.lhost -x 35 -y 7 -anchor nw -bordermode ignore - place $base.ehost -x 100 -y 5 -anchor nw -bordermode ignore - place $base.lport -x 35 -y 32 -anchor nw -bordermode ignore - place $base.epport -x 100 -y 30 -anchor nw -bordermode ignore - place $base.ldbname -x 35 -y 57 -anchor nw -bordermode ignore - place $base.edbname -x 100 -y 55 -anchor nw -bordermode ignore - place $base.opbtu -x 70 -y 90 -width 60 -height 26 -anchor nw -bordermode ignore - place $base.canbut -x 150 -y 90 -width 60 -height 26 -anchor nw -bordermode ignore + place $base.lhost \ + -x 35 -y 7 -anchor nw -bordermode ignore + place $base.ehost \ + -x 100 -y 5 -anchor nw -bordermode ignore + place $base.lport \ + -x 35 -y 32 -anchor nw -bordermode ignore + place $base.epport \ + -x 100 -y 30 -anchor nw -bordermode ignore + place $base.ldbname \ + -x 35 -y 57 -anchor nw -bordermode ignore + place $base.edbname \ + -x 100 -y 55 -anchor nw -bordermode ignore + place $base.lusername \ + -x 35 -y 82 -anchor nw -bordermode ignore + place $base.eusername \ + -x 100 -y 80 -anchor nw -bordermode ignore + place $base.lpassword \ + -x 35 -y 107 -anchor nw -bordermode ignore + place $base.epassword \ + -x 100 -y 105 -anchor nw -bordermode ignore + place $base.opbtu \ + -x 70 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore + place $base.canbut \ + -x 150 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore } proc vTclWindow.dw {base} { @@ -2755,7 +2830,8 @@ proc vTclWindow.dw {base} { Window show .dbod set newhost $host set newpport $pport -focus .dbod.edbname} \ +focus .dbod.edbname +.dbod.edbname selection range 0 end} \ -label Open $base.menubutton23.01 add command \ \ @@ -2972,6 +3048,12 @@ proc vTclWindow.iew {base} { place $base.oicb -x 170 -y 75 -anchor nw -bordermode ignore } +proc {mw_canvas_paste} {x y} { + global mw + .mw.c insert $mw(id_edited) insert [selection get] + set mw(dirtyrec) 1 +} + proc vTclWindow.mw {base} { if {$base == ""} { set base .mw @@ -3036,6 +3118,9 @@ if {[mw_save_new_record]} {mw_select_records $nq} bind $base.c <Button-1> { mw_canvas_click %x %y } + bind $base.c <Button-2> { + mw_canvas_paste %x %y + } bind $base.c <Button-3> { if {[mw_exit_edit]} {mw_save_new_record} } diff --git a/src/tools/RELEASE_CHANGES b/src/tools/RELEASE_CHANGES index c5860a81a15..a2aa217f2b0 100644 --- a/src/tools/RELEASE_CHANGES +++ b/src/tools/RELEASE_CHANGES @@ -2,11 +2,9 @@ README INSTALL HISTORY register.txt -configure.in doc/Machine-specific FAQ's doc/TODO doc/bug.template -make new /mirgration file update include/version.h after release update backend/parser/scan.c and gram.c so flex/bison not necessary update pgaccess |