Update to pgaccess 0.90.
This commit is contained in:
parent
681343ab6c
commit
2133276ecc
|
@ -22,7 +22,7 @@ PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|||
---------------------------------------------------------------------------
|
||||
|
||||
|
||||
PGACCESS 0.88 7 June 1998
|
||||
PGACCESS 0.90 18 September 1998
|
||||
================================
|
||||
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
|
||||
|
@ -44,7 +44,7 @@ four days of hard work to get it as you see it now.
|
|||
2.How to INSTALL ?
|
||||
|
||||
You will need Tcl/Tk package, I am using now Tcl 7.6 and Tk 4.2.
|
||||
PgAccess is running also on Tcl/Tk 8.0
|
||||
PgAccess is running fine also on Tcl/Tk 8.0
|
||||
|
||||
Also, you will need the PostgreSQL to Tcl interface library, lined as a
|
||||
Tcl/Tk 'load'-able module. It is called libpgtcl and the source is
|
||||
|
@ -101,7 +101,7 @@ Queries
|
|||
- define, edit and store "user defined queries"
|
||||
- save view layout
|
||||
- can store queries as views
|
||||
- execution of queries
|
||||
- execution of queries with optional user input parameters ( select * from invoices where year=[parameter "Year of selection"] )
|
||||
- viewing of select type queries result
|
||||
- running action queries (insert, update, delete)
|
||||
- visual query builder with drag & drop support, table aliasing
|
||||
|
@ -152,10 +152,10 @@ Some information about table structure, no. of fields, records would
|
|||
be also good.
|
||||
|
||||
===========================================================================
|
||||
You would find always the last version at http://www.flex.ro/pgaccess
|
||||
You would find always the latest version at http://www.flex.ro/pgaccess
|
||||
|
||||
Please feel free to e-mail me with any suggestion or bug description
|
||||
that will help to improve this.
|
||||
that will help to improve it.
|
||||
|
||||
Constantin Teodorescu <teo@flex.ro>
|
||||
|
||||
|
|
|
@ -1,134 +1,144 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i586) [Netscape]">
|
||||
<TITLE>PgAccess - a Tcl/Tk PostgreSQL interface</TITLE>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.33 i586) [Netscape]">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
|
||||
<H1>
|
||||
PgAccess - a database management tool for <A HREF="http://www.postgreSQL.org">PostgreSQL</A></H1>
|
||||
<H1>PgAccess - a free database management tool for <A HREF="http://www.postgreSQL.org">PostgreSQL</A></H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
<HR></P>
|
||||
|
||||
<P>This program is protected by the following <A HREF="copyright.html">copyright</A>
|
||||
<LI>
|
||||
<A HREF="pgaccess-0.88.tar.gz">Download the last version of PgAccess (press
|
||||
shift and click this link)</A>.</LI>
|
||||
<LI><A HREF="pgaccess-0.90.tar.gz">Download the last version of PgAccess
|
||||
(press shift and click this link)</A>.</LI>
|
||||
|
||||
<CENTER><P>Latest version of PgAccess is 0.90 , 18 September 1998 ! <BR>
|
||||
<BR>
|
||||
<B><FONT COLOR="#FF0000">NEW * NEW * NEW *</FONT></B> <B><FONT COLOR="#FF0000">
|
||||
NEW *</FONT></B> ==== > <B><FONT SIZE=+1>QUERY PARAMETERS</FONT></B>
|
||||
(see section Queries below)<BR>
|
||||
<BR>
|
||||
Precompiled libpgtcl and libpq binaries for i386 are <A HREF="ftp://ftp.flex.ro/pub/pgaccess">here
|
||||
</A>!!! <BR>
|
||||
</P></CENTER>
|
||||
|
||||
<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>
|
||||
<TD>
|
||||
<CENTER><B><FONT SIZE=+2>PgAccess can now design <A HREF="forms.html">Forms</A></FONT></B>,
|
||||
<B><FONT SIZE=+2><A HREF="pga-rad.html">Reports and Scripts</A></FONT></B> </CENTER>
|
||||
<CENTER><P><B><FONT SIZE=+2>PgAccess can now design <A HREF="forms.html">Forms</A></FONT></B>,
|
||||
<B><FONT SIZE=+2><A HREF="pga-rad.html">Reports and Scripts</A></FONT></B>
|
||||
</P></CENTER>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></CENTER>
|
||||
|
||||
<H3>
|
||||
<FONT COLOR="#000080">Installation problems</FONT></H3>
|
||||
<H3><FONT COLOR="#000080">Installation problems</FONT></H3>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
Some problems related with locale special characters could be solved by
|
||||
this <A HREF="specialchars.html">simple patch</A></LI>
|
||||
<LI>Some problems related with locale special characters could be solved
|
||||
by this <A HREF="specialchars.html">simple patch</A></LI>
|
||||
|
||||
<LI>
|
||||
I think that there were some problems loading libpgtcl library. I invite
|
||||
<LI>I think that there were some problems loading libpgtcl library. I invite
|
||||
you to read a <A HREF="index.html#libpgtcl">special section concerning
|
||||
libpgtcl</A></LI>
|
||||
|
||||
<LI>For Silicon Graphics Indigo computers, Irix operating system, there
|
||||
is a <A HREF="irix.html">HOWTO make PgAccess to work</A></LI>
|
||||
</UL>
|
||||
|
||||
<H3>
|
||||
<FONT COLOR="#191970">What does PgAccess now!</FONT></H3>
|
||||
Here are some images from PgAccess windows : <A HREF="pic-pga-1.gif">Main
|
||||
<H3><FONT COLOR="#191970">What does PgAccess now!</FONT></H3>
|
||||
|
||||
<P>Here are some screenshots from PgAccess windows : <A HREF="pic-pga-1.gif">Main
|
||||
window </A>, <A HREF="pic-pga-2.gif">table builder </A>, <A HREF="pic-pga-4.gif">table(query)
|
||||
view </A>, <A HREF="pic-pga-3.gif">visual query builder </A>.
|
||||
view </A>, <A HREF="pic-pga-3.gif">visual query builder </A>. </P>
|
||||
|
||||
<P><B>Tables</B>
|
||||
<BR>- opening tables for viewing, max. 200 records (changed by preferences
|
||||
menu)
|
||||
<BR>- column resizing, dragging the vertical grid line (better in table
|
||||
space rather than in the table header)
|
||||
<BR>- text wrap in cells - layout saved for every table
|
||||
<BR>- import/export to external files (SDF,CSV)
|
||||
<BR>- filter capabilities (enter filter like (price>3.14)
|
||||
<BR>- sort order capabilities (enter manually the sort field(s))
|
||||
<BR>- editing in place
|
||||
<BR>- improved table generator assistant
|
||||
<BR>- improved field editing
|
||||
<BR><B>Queries</B>
|
||||
<BR>- define , edit and stores "user defined queries"
|
||||
<BR>- store queries as views
|
||||
<BR>- execution of queries
|
||||
<BR>- viewing of select type queries result
|
||||
<BR>- query deleting and renaming
|
||||
<BR>- visual query builder with drag & drop capabilities. For any of
|
||||
you who had installed the Tcl/Tk plugin for Netscape Navigator, you can
|
||||
see it at work <A HREF="qbtclet.html">clicking here</A>
|
||||
<BR><B>Sequences</B>
|
||||
<BR>- defines sequences, delete them and inspect them
|
||||
<BR><B>Functions</B>
|
||||
<BR>- define, inspect and delete functions in SQL language
|
||||
<BR><B>Reports</B>
|
||||
<BR>- design and display simple reports from tables
|
||||
<BR>- fields and labels, font changing, style and size
|
||||
<BR>- saves and loads report description from database
|
||||
<BR>- show report previews, sample postscript output file
|
||||
<BR><B>Forms</B>
|
||||
<BR>- open user defined forms
|
||||
<BR>- form design module available
|
||||
<BR>- query widget available, controls bound to query results
|
||||
<BR>- <A HREF="forms.html">click here</A> for a description of forms and
|
||||
how they can be used
|
||||
<BR><B>Scripts</B>
|
||||
<BR>- define, modify and call user defined scripts
|
||||
<BR>Here is <A HREF="pga-rad.html">a special section concerning forms and
|
||||
scripts</A> .
|
||||
<P><B>Tables</B> <BR>
|
||||
- opening tables for viewing, max. 200 records (changed by preferences
|
||||
menu) <BR>
|
||||
- column resizing, dragging the vertical grid line (better in table space
|
||||
rather than in the table header) <BR>
|
||||
- text wrap in cells - layout saved for every table <BR>
|
||||
- import/export to external files (SDF,CSV) <BR>
|
||||
- filter capabilities (enter filter like (price>3.14) <BR>
|
||||
- sort order capabilities (enter manually the sort field(s)) <BR>
|
||||
- editing in place <BR>
|
||||
- improved table generator assistant <BR>
|
||||
- improved field editing <BR>
|
||||
<B>Queries</B> <BR>
|
||||
- define , edit and stores "user defined queries" <BR>
|
||||
- store queries as views <BR>
|
||||
- execution of queries with optional user input parameters ( select * from
|
||||
invoices where year=[parameter "Year of selection"] )<BR>
|
||||
- viewing of select type queries result <BR>
|
||||
- query deleting and renaming <BR>
|
||||
- visual query builder with drag & drop capabilities. For any of you
|
||||
who had installed the Tcl/Tk plugin for Netscape Navigator, you can see
|
||||
it at work <A HREF="qbtclet.html">clicking here</A> <BR>
|
||||
<B>Sequences</B> <BR>
|
||||
- defines sequences, delete them and inspect them <BR>
|
||||
<B>Functions</B> <BR>
|
||||
- define, inspect and delete functions in SQL language <BR>
|
||||
<B>Reports</B> <BR>
|
||||
- design and display simple reports from tables <BR>
|
||||
- fields and labels, font changing, style and size <BR>
|
||||
- saves and loads report description from database <BR>
|
||||
- show report previews, sample postscript output file <BR>
|
||||
<B>Forms</B> <BR>
|
||||
- open user defined forms <BR>
|
||||
- form design module available <BR>
|
||||
- query widget available, controls bound to query results <BR>
|
||||
- <A HREF="forms.html">click here</A> for a description of forms and how
|
||||
they can be used <BR>
|
||||
<B>Scripts</B> <BR>
|
||||
- define, modify and call user defined scripts <BR>
|
||||
Here is <A HREF="pga-rad.html">a special section concerning forms and scripts</A>
|
||||
. </P>
|
||||
|
||||
<P>On the TO-DO list!
|
||||
<BR>- table design (add new fields, renaming, etc.)
|
||||
<P>On the TO-DO list! <BR>
|
||||
- table design (add new fields, renaming, etc.) </P>
|
||||
|
||||
<P>
|
||||
<P>This program is protected by the following <A HREF="copyright.html">copyright</A>
|
||||
</P>
|
||||
|
||||
<P>If you have any comment, suggestion for improvements, please feel free
|
||||
to e-mail to : <A HREF="mailto:teo@flex.ro">teo@flex.ro </A>
|
||||
to e-mail to : <A HREF="mailto:teo@flex.ro">teo@flex.ro </A> </P>
|
||||
|
||||
<P><B><FONT COLOR="#FF1493"><FONT SIZE=+2>Mailing list for PgAccess </FONT></FONT></B><A HREF="maillist.html">Here
|
||||
you will find how to subscribe to this mailing list</A>.
|
||||
you will find how to subscribe to this mailing list</A>. </P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<H1>
|
||||
More information about libpgtcl - downloads</H1>
|
||||
Also, you will need the PostgreSQL to Tcl interface
|
||||
<HR></P>
|
||||
|
||||
<H1>More information about libpgtcl - downloads</H1>
|
||||
|
||||
<P> Also, you will need the PostgreSQL to Tcl interface
|
||||
library, lined as a Tcl/Tk 'load'-able module. It is called libpgtcl and
|
||||
the source is located in the PostgreSQL directory /src/interfaces/libpgtcl.
|
||||
Specifically, you will need a libpgtcl library that is 'load'-able from
|
||||
Tcl/Tk. This is technically different from
|
||||
an ordinary PostgreSQL loadable object file, because libpgtcl is a collection
|
||||
of object files. Under Linux, this is called libpgtcl.so.
|
||||
<BR> You can download <B><A HREF="lib-pg63-redhat42.tar.gz">from
|
||||
of object files. Under Linux, this is called libpgtcl.so. <BR>
|
||||
You can download <B><A HREF="lib-pg63-redhat42.tar.gz">from
|
||||
here</A></B> libpgtcl.so and libpq.so compiled for PostgreSQL 6.3
|
||||
version running on a Linux RedHat 4.2 i386 systems. Just copy libpgtcl.so
|
||||
and libpq.so into your system library directory (/usr/lib or /lib) and
|
||||
go for it.
|
||||
go for it. </P>
|
||||
|
||||
<P> One of the solutions is to remove from the
|
||||
source the line containing <B>load libpgtcl.so </B>and to load pgaccess.tcl
|
||||
not with wish, but with pgwish (or wishpg) that wish that was linked with
|
||||
libpgtcl library! I do not recommend this one.
|
||||
libpgtcl library! I do not recommend this one. </P>
|
||||
|
||||
<P> If you have installed RedHat 5.0, you should
|
||||
get the last distribution kit of PostgreSQL and compile it from scratch.
|
||||
RedHat 5.0 is using some new versions of libraries and you have to compile
|
||||
and install again at least <B>libpq </B>and <B><TT>libpgtcl </TT></B>libraries.
|
||||
</P>
|
||||
|
||||
<P>However, the application should work without problems! </P>
|
||||
|
||||
<P>However, the application should work without problems!
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
|
@ -0,0 +1,133 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>PgAccess on Irix</TITLE>
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.33 i586) [Netscape]">
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000">
|
||||
|
||||
<H1>INSTALLING PgAccess UNDER IRIX 5.3.
|
||||
<HR WIDTH="100%"></H1>
|
||||
|
||||
<P><B><FONT COLOR="#000080">This HOWO-TO make PgAccess working under Irix
|
||||
is written by Stuart Rison</FONT></B></P>
|
||||
|
||||
<P>These are the steps that I had to follow to get pgaccess to run on an
|
||||
INDIGO2 running postgreSQL 6.3.2 under IRIX 5.3. I make no guarantee whatsoever
|
||||
that the same step will work for others but at least it should point you
|
||||
in the right direction. Also, I am a biologist by training so I only got
|
||||
pgaccess working by fudging (that is, trial and error) this means that
|
||||
some of the steps may be unnecessary (e.g. compiling $postgreSQL_source/src/interfaces/libpgtcl
|
||||
as both a shared and static library) and they certainly haven't been optimised
|
||||
(I know nothing about compiler switches etc.).</P>
|
||||
|
||||
<P><B>1) Requirements:</B></P>
|
||||
|
||||
<UL>
|
||||
<P>You will need:</P>
|
||||
|
||||
<UL>
|
||||
<LI>postgreSQL source (http://www.postgresql.org)</LI>
|
||||
|
||||
<LI>tcl8.0 source (http://www.tclconsortium.org/)</LI>
|
||||
|
||||
<LI>tk8.0 source (http://www.tclconsortium.org/)</LI>
|
||||
|
||||
<LI>pgaccess source (http://www.flex.ro/pgaccess)</LI>
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
<P><B>2) Installation:</B></P>
|
||||
|
||||
<P>a) tcl/tk:</P>
|
||||
|
||||
<UL>
|
||||
<P>You must first install tcl and then tk (in that order). I just used
|
||||
./configure, no switches and gmake. Their installation should be trouble
|
||||
free. Then you must move headers and libraries to the right places so:</P>
|
||||
|
||||
<P>Header files: both tcl and tk have a header file (tcl.h and tk.h). The
|
||||
tcl.h file is in $tcl_source_dir/generic and the tk.h file is in $tk_source_dir/generic;
|
||||
both should be copied to /usr/local/include.</P>
|
||||
|
||||
<P>Libraries: compilation (with cc) of tcl and tk yield libraries libtcl8.0.a
|
||||
and libtk8.0.a in $source_dir/unix. Both should be copied to /usr/local/lib.</P>
|
||||
</UL>
|
||||
|
||||
<P>b) postgreSQL:</P>
|
||||
|
||||
<UL>
|
||||
<P>Make sure you have a fully patched postgreSQL source. If your ./configure
|
||||
says it can't load 'IRIX' settings then you most probably will need to
|
||||
patch ./configure.</P>
|
||||
|
||||
<P>Configure using ./configure with the following switches: ./configure
|
||||
--with-includes=/usr/local/include</P>
|
||||
|
||||
<P>--with-libraries=/usr/local/lib --with-tcl [this and previous line as
|
||||
one]</P>
|
||||
|
||||
<P>Then make, make install as usual</P>
|
||||
</UL>
|
||||
|
||||
<P>c) Compiling libpgtcl:</P>
|
||||
|
||||
<UL>
|
||||
<P>The source for libpgtcl is in $postgreSQL_directory/src/interfaces/libpgsql.</P>
|
||||
|
||||
<P>I do this twice. Once with just gmake. This produces a static library
|
||||
libpgtcl.a which I leave where it is (I don't know what to do with it but
|
||||
it may just come in handy). The I modify Makefile manually with a text
|
||||
editor. Essentially I modify two line:</P>
|
||||
|
||||
<P>before:</P>
|
||||
|
||||
<P># Shared library stuff</P>
|
||||
|
||||
<P>install-shlib-dep := shlib :=</P>
|
||||
|
||||
<P>after:</P>
|
||||
|
||||
<P># Shared library stuff</P>
|
||||
|
||||
<P>install-shlib-dep := install-shlib shlib := libpgtcl.so.1</P>
|
||||
|
||||
<P>Then gmake -f Makefile_modified. This creates two shared (.so) libraries:
|
||||
libpgtcl.so and libpgtcl.so.1. I can't tell the difference between them
|
||||
so I copied them both to /usr/lib/.</P>
|
||||
</UL>
|
||||
|
||||
<P>d) running pgaccess:</P>
|
||||
|
||||
<UL>
|
||||
<P>Uncompress pgaccess (usually with gunzip and tar). So long as 'wish'
|
||||
(a binary produced when compiling tk8.0) is somewhere in your path, you
|
||||
should be able to run pgaccess with:</P>
|
||||
|
||||
<P>wish -f $pgaccess_dir/pgaccess.tcl [postgreSQL_database_name]</P>
|
||||
</UL>
|
||||
|
||||
<P>e) et voila!</P>
|
||||
|
||||
<P><B>3) Concluding remarks:</B></P>
|
||||
|
||||
<UL>
|
||||
<P>As I stated at the start of this document, following the procedure indicated
|
||||
above worked for me. I am sure, however, that a few of the steps are unnecessary/non-optimised/stupid
|
||||
etc. If any Unix (IRIX) boffin is reading this and you spot anything you
|
||||
would like to comment/correct etc. please e-mail me (stuart@ludwig.ucl.ac.uk).
|
||||
Also, if you just have questions and think I might help, please contact
|
||||
me at the same e-mail.</P>
|
||||
|
||||
<P>Finally, I can accept no responsibility if these steps don't work for
|
||||
you or if it all goes horribly wrong and you 'damage' your computer trying
|
||||
them. Let common sense prevail!</P>
|
||||
</UL>
|
||||
|
||||
<P>Good luck</P>
|
||||
|
||||
<P>Stuart Rison LICR University College London London W1P 8BT<BR>
|
||||
<A HREF="mailto:stuart@ludwig.ucl.ac.uk">stuart@ludwig.ucl.ac.uk</A></P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -106,7 +106,7 @@ set temp {}
|
|||
switch $activetab {
|
||||
Tables {
|
||||
if {[tk_messageBox -title "FINAL WARNING" -message "You are going to delete table:\n\n$objtodelete\n\nProceed ?" -type yesno -default no]=="yes"} {
|
||||
sql_exec noquiet "drop table $objtodelete"
|
||||
sql_exec noquiet "drop table \"$objtodelete\""
|
||||
sql_exec quiet "delete from pga_layout where tablename='$objtodelete'"
|
||||
cmd_Tables
|
||||
}
|
||||
|
@ -1193,7 +1193,7 @@ if {$mw(row_edited)==$mw(last_rownum)} {
|
|||
set msg "Updating record ..."
|
||||
after 1000 {set msg ""}
|
||||
regsub -all ' $fldval \\' sqlfldval
|
||||
set retval [sql_exec noquiet "update $tablename set $fld='$sqlfldval' where oid=$oid"]
|
||||
set retval [sql_exec noquiet "update \"$tablename\" set $fld='$sqlfldval' where oid=$oid"]
|
||||
}
|
||||
cursor_arrow .mw
|
||||
if {!$retval} {
|
||||
|
@ -1267,7 +1267,7 @@ if {$mw(newrec_fields)==""} {return 1}
|
|||
set msg "Saving new record ..."
|
||||
after 1000 {set msg ""}
|
||||
set retval [catch {
|
||||
set sqlcmd "insert into $tablename ([join $mw(newrec_fields) ,]) values ([join $mw(newrec_values) ,])"
|
||||
set sqlcmd "insert into \"$tablename\" ([join $mw(newrec_fields) ,]) values ([join $mw(newrec_values) ,])"
|
||||
set pgres [pg_exec $dbc $sqlcmd]
|
||||
} errmsg]
|
||||
if {$retval} {
|
||||
|
@ -1596,13 +1596,13 @@ if {$how=="design"} {
|
|||
.qb.text1 insert end $qcmd
|
||||
} else {
|
||||
if {$qtype=="S"} then {
|
||||
set mw(query) [subst $qcmd]
|
||||
set mw(updatable) 0
|
||||
set mw(isaquery) 1
|
||||
Window show .mw
|
||||
wm title .mw "Query result: $queryname"
|
||||
mw_load_layout $queryname
|
||||
set mw(query) $qcmd
|
||||
set mw(updatable) 0
|
||||
set mw(isaquery) 1
|
||||
mw_select_records $qcmd
|
||||
mw_select_records $mw(query)
|
||||
} else {
|
||||
set answ [tk_messageBox -title Warning -type yesno -message "This query is an action query!\n\n[string range $qcmd 0 30] ...\n\nDo you want to execute it?"]
|
||||
if {$answ} {
|
||||
|
@ -1646,7 +1646,7 @@ set filter {}
|
|||
Window show .mw
|
||||
set tablename $objname
|
||||
mw_load_layout $objname
|
||||
set mw(query) "select oid,$tablename.* from $objname"
|
||||
set mw(query) "select oid,\"$tablename\".* from \"$objname\""
|
||||
set mw(updatable) 1
|
||||
set mw(isaquery) 0
|
||||
mw_select_records $mw(query)
|
||||
|
@ -1665,6 +1665,23 @@ mw_load_layout $vn
|
|||
mw_select_records $mw(query)
|
||||
}
|
||||
|
||||
proc {parameter} {msg} {
|
||||
global gpw
|
||||
Window show .gpw
|
||||
focus .gpw.e1
|
||||
set gpw(var) ""
|
||||
set gpw(flag) 0
|
||||
set gpw(msg) $msg
|
||||
bind .gpw <Destroy> "set gpw(flag) 1"
|
||||
grab .gpw
|
||||
tkwait variable gpw(flag)
|
||||
if {$gpw(result)} {
|
||||
return $gpw(var)
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
proc {ql_add_new_table} {} {
|
||||
global qlvar dbc
|
||||
|
||||
|
@ -1704,7 +1721,7 @@ set tables {}
|
|||
for {set i 0} {$i<$qlvar(ntables)} {incr i} {
|
||||
set thename {}
|
||||
catch {set thename $qlvar(tablename$i)}
|
||||
if {$thename!=""} {lappend tables "$qlvar(tablename$i) $qlvar(tablealias$i)"}
|
||||
if {$thename!=""} {lappend tables "\"$qlvar(tablename$i)\" $qlvar(tablealias$i)"}
|
||||
}
|
||||
set sqlcmd "$sqlcmd from [join $tables ,] "
|
||||
set sup1 {}
|
||||
|
@ -1767,10 +1784,10 @@ if {[ql_get_tag_info $obj res]=="f"} {
|
|||
# Is object a table ?
|
||||
set tablealias [ql_get_tag_info $obj tab]
|
||||
set tablename $qlvar(ali_$tablealias)
|
||||
if {$tablename==""} return
|
||||
if {"$tablename"==""} return
|
||||
if {[tk_messageBox -title WARNING -icon question -message "Remove table $tablename from query ?" -type yesno -default no]=="no"} return
|
||||
for {set i [expr [llength $qlvar(restables)]-1]} {$i>=0} {incr i -1} {
|
||||
if {$tablename==[lindex $qlvar(restables) $i]} {
|
||||
if {"$tablename"==[lindex $qlvar(restables) $i]} {
|
||||
set qlvar(resfields) [lreplace $qlvar(resfields) $i $i]
|
||||
set qlvar(restables) [lreplace $qlvar(restables) $i $i]
|
||||
set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $i $i]
|
||||
|
@ -2004,7 +2021,7 @@ set allbox [.ql.c bbox rect]
|
|||
if {$allbox==""} {set posx 10} else {set posx [expr 20+[lindex $allbox 2]]}
|
||||
set tablename $qlvar(tablename$it)
|
||||
set tablealias $qlvar(tablealias$it)
|
||||
.ql.c create text $posx $posy -text $tablename -anchor nw -tags [subst {tab$tablealias f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*
|
||||
.ql.c create text $posx $posy -text "$tablename" -anchor nw -tags [subst {tab$tablealias f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*
|
||||
incr posy 16
|
||||
foreach fld $qlvar(tablestruct$it) {
|
||||
.ql.c create text $posx $posy -text $fld -fill #010101 -anchor nw -tags [subst {f-$fld tab$tablealias mov}] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
|
@ -2382,7 +2399,7 @@ incr py [expr $rbvar(y_pghdr)-$rbvar(y_rpthdr)]
|
|||
set di [lsearch $rbvar(regions) detail]
|
||||
set y_hi $rbvar(y_detail)
|
||||
set y_lo $rbvar(y_[lindex $rbvar(regions) [expr $di-1]])
|
||||
pg_select $dbc "select * from $rbvar(tablename)" rec {
|
||||
pg_select $dbc "select * from \"$rbvar(tablename)\"" rec {
|
||||
foreach {field x y objid objtype} $fields {
|
||||
if {($y>=$y_lo) && ($y<=$y_hi)} then {
|
||||
if {$objtype=="t_f"} {
|
||||
|
@ -2406,7 +2423,7 @@ tk_messageBox -title Information -message "The printed image in Postscript is in
|
|||
|
||||
proc {rb_save_report} {} {
|
||||
global rbvar
|
||||
set prog "set rbvar(tablename) $rbvar(tablename)"
|
||||
set prog "set rbvar(tablename) \"$rbvar(tablename)\""
|
||||
foreach region $rbvar(regions) {
|
||||
set prog "$prog ; set rbvar(y_$region) $rbvar(y_$region)"
|
||||
}
|
||||
|
@ -2652,7 +2669,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.88}
|
||||
label $base.l3 -borderwidth 0 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -relief sunken -text {vers 0.90}
|
||||
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
|
||||
|
||||
|
@ -3261,7 +3278,7 @@ proc vTclWindow.nt {base} {
|
|||
show_error "Your table has no fields!"
|
||||
focus .nt.e2
|
||||
} else {
|
||||
set temp "create table $newtablename ([join [.nt.lb get 0 end] ,])"
|
||||
set temp "create table \"$newtablename\" ([join [.nt.lb get 0 end] ,])"
|
||||
if {$fathername!=""} then {set temp "$temp inherits ($fathername)"}
|
||||
cursor_watch .nt
|
||||
set retval [catch {
|
||||
|
@ -3539,13 +3556,13 @@ if {[lindex [split [string toupper $qcmd]] 0]!="SELECT"} {
|
|||
sql_exec noquiet $qcmd
|
||||
}
|
||||
} else {
|
||||
set mw(query) [subst $qcmd]
|
||||
set mw(updatable) 0
|
||||
set mw(isaquery) 1
|
||||
Window show .mw
|
||||
set mw(layout_name) $queryname
|
||||
mw_load_layout $queryname
|
||||
set mw(query) $qcmd
|
||||
set mw(updatable) 0
|
||||
set mw(isaquery) 1
|
||||
mw_select_records $qcmd
|
||||
mw_select_records $mw(query)
|
||||
}
|
||||
} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 -pady 3 -text {Execute query}
|
||||
button $base.termbtn -borderwidth 1 -command {.qb.cbv configure -state normal
|
||||
|
@ -3612,14 +3629,15 @@ Window destroy .ql} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -p
|
|||
bind $base.entt <Key-Return> {
|
||||
ql_add_new_table
|
||||
}
|
||||
button $base.execbtn -borderwidth 1 -command {Window show .mw
|
||||
button $base.execbtn -borderwidth 1 -command {
|
||||
set qcmd [ql_compute_sql]
|
||||
set mw(layout_name) nolayoutneeded
|
||||
mw_load_layout $mw(layout_name)
|
||||
set mw(query) $qcmd
|
||||
set mw(query) [subst $qcmd]
|
||||
set mw(updatable) 0
|
||||
set mw(isaquery) 1
|
||||
mw_select_records $qcmd} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 -pady 3 -text {Execute SQL}
|
||||
Window show .mw
|
||||
mw_load_layout $mw(layout_name)
|
||||
mw_select_records $mw(query)} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 -pady 3 -text {Execute SQL}
|
||||
button $base.stoqb -borderwidth 1 -command {Window show .qb
|
||||
.qb.text1 delete 1.0 end
|
||||
.qb.text1 insert end [ql_compute_sql]
|
||||
|
@ -3675,7 +3693,7 @@ proc vTclWindow.rf {base} {
|
|||
if {$newobjname==""} {
|
||||
show_error "You must give object a new name!"
|
||||
} elseif {$activetab=="Tables"} {
|
||||
set retval [sql_exec noquiet "alter table $oldobjname rename to $newobjname"]
|
||||
set retval [sql_exec noquiet "alter table \"$oldobjname\" rename to \"$newobjname\""]
|
||||
if {$retval} {
|
||||
sql_exec quiet "update pga_layout set tablename='$newobjname' where tablename='$oldobjname'"
|
||||
cmd_Tables
|
||||
|
@ -4520,6 +4538,65 @@ catch {Window destroy .$fdvar(forminame)}
|
|||
-x 175 -y 25 -width 60 -height 17 -anchor nw -bordermode ignore
|
||||
}
|
||||
|
||||
proc vTclWindow.gpw {base} {
|
||||
if {$base == ""} {
|
||||
set base .gpw
|
||||
}
|
||||
if {[winfo exists $base]} {
|
||||
wm deiconify $base; return
|
||||
}
|
||||
###################
|
||||
# CREATING WIDGETS
|
||||
###################
|
||||
toplevel $base -class Toplevel
|
||||
wm focusmodel $base passive
|
||||
set sw [winfo screenwidth .]
|
||||
set sh [winfo screenheight .]
|
||||
set x [expr ($sw - 297)/2]
|
||||
set y [expr ($sh - 98)/2]
|
||||
wm geometry $base 297x98+$x+$y
|
||||
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 "Input parameter"
|
||||
label $base.l1 \
|
||||
-anchor nw -borderwidth 1 \
|
||||
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \
|
||||
-justify left -relief sunken -textvariable gpw(msg) -wraplength 200
|
||||
entry $base.e1 \
|
||||
-background #fefefe -borderwidth 1 -highlightthickness 0 \
|
||||
-textvariable gpw(var)
|
||||
bind $base.e1 <Key-KP_Enter> {
|
||||
set gpw(result) 1
|
||||
destroy .gpw
|
||||
}
|
||||
bind $base.e1 <Key-Return> {
|
||||
set gpw(result) 1
|
||||
destroy .gpw
|
||||
}
|
||||
button $base.bok \
|
||||
-borderwidth 1 -command {set gpw(result) 1
|
||||
destroy .gpw} -padx 9 \
|
||||
-pady 3 -text Ok
|
||||
button $base.bcanc \
|
||||
-borderwidth 1 -command {set gpw(result) 0
|
||||
destroy .gpw} -padx 9 \
|
||||
-pady 3 -text Cancel
|
||||
###################
|
||||
# SETTING GEOMETRY
|
||||
###################
|
||||
place $base.l1 \
|
||||
-x 10 -y 5 -width 201 -height 53 -anchor nw -bordermode ignore
|
||||
place $base.e1 \
|
||||
-x 10 -y 65 -width 200 -height 24 -anchor nw -bordermode ignore
|
||||
place $base.bok \
|
||||
-x 225 -y 5 -width 61 -height 26 -anchor nw -bordermode ignore
|
||||
place $base.bcanc \
|
||||
-x 225 -y 35 -width 61 -height 26 -anchor nw -bordermode ignore
|
||||
}
|
||||
|
||||
proc vTclWindow.fdtb {base} {
|
||||
if {$base == ""} {
|
||||
set base .fdtb
|
||||
|
|
Loading…
Reference in New Issue