aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pgaccess/doc/html/tutorial
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pgaccess/doc/html/tutorial')
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/addref.jpgbin0 -> 28655 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/altern_q.jpgbin0 -> 13639 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/altern_v.jpgbin0 -> 16987 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/copyright.htmlbin0 -> 20480 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/index.html33
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/intro.html39
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/irix.html133
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/newref.txt1
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/newtable.jpgbin0 -> 29164 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/newtable.tgabin0 -> 44583 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/problems.html83
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/screen1.jpgbin0 -> 15331 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/sel_tbl.jpgbin0 -> 15983 bytes
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/start.html74
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/tut.html50
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/tut_edit.html39
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/tut_new.html36
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/tut_sel1.html36
-rw-r--r--src/bin/pgaccess/doc/html/tutorial/tut_user.html28
19 files changed, 552 insertions, 0 deletions
diff --git a/src/bin/pgaccess/doc/html/tutorial/addref.jpg b/src/bin/pgaccess/doc/html/tutorial/addref.jpg
new file mode 100644
index 00000000000..ee0525d15ce
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/addref.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/altern_q.jpg b/src/bin/pgaccess/doc/html/tutorial/altern_q.jpg
new file mode 100644
index 00000000000..3fb02aebbd7
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/altern_q.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/altern_v.jpg b/src/bin/pgaccess/doc/html/tutorial/altern_v.jpg
new file mode 100644
index 00000000000..52cbbb07720
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/altern_v.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/copyright.html b/src/bin/pgaccess/doc/html/tutorial/copyright.html
new file mode 100644
index 00000000000..22eada2fc43
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/copyright.html
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/index.html b/src/bin/pgaccess/doc/html/tutorial/index.html
new file mode 100644
index 00000000000..a63f1a89fbf
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/index.html
@@ -0,0 +1,33 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html><head><title>PgAccess - a Tcl/Tk interface for PostgreSQL</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess - a Tcl/Tk interface for PostgreSQL</h1>
+<hr>
+<a name="intro">
+<ul><li><a href="intro.html">Introduction</a>
+ <ul><li><a href="intro.html#whatpga">What is PgAccess?</a>
+ <li><a href="intro.html#helppga">How to get help with PgAccess</a>
+ </ul>
+<a name="start">
+ <li><a href="start.html">Getting Started</a>
+ <ul><li><a href="start.html#getpga">How to get PgAccess</a>
+ <li><a href="start.html#uncpga">How to uncompress PgAccess</a>
+ <li><a href="start.html#putpga">Putting PgAccess where it will be found</a>
+ <li><a href="start.html#startpga">Starting PgAccess</a>
+ <li><a href="irix.html">Installing PgAccess under IRIX 5.3</a>
+ </ul>
+<a name="problems">
+ <li><a href="problems.html">Common Initial Problems</a>
+ <ul><li><a href="problems.html#connfail">Connection failure</a>
+ <li><a href="problems.html#nonuser">User not defined</a>
+ <li><a href="problems.html#libpg">libpgtcl not found</a>
+ <li><a href="problems.html#spchar">Locale specific characters</a>
+ <li><a href="problems.html#pg63">Problems with PostgreSQL 6.3.x</a>
+ </ul>
+ <li><a href="tut.html">PgAccess tutorial</a>
+ <ul><li><a href="tut_user.html">User Administration</a>
+ <li><a href="tut_new.html">Creating a table</a>
+ <li><a href="tut_edit.html">Editing a table</a>
+ <li><a href="tut_sel1.html">Querying - SELECT</a>
+</ul>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/intro.html b/src/bin/pgaccess/doc/html/tutorial/intro.html
new file mode 100644
index 00000000000..2f056599edf
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/intro.html
@@ -0,0 +1,39 @@
+<html><head><title>PgAccess - Introduction</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess - Introduction</h1>
+<a name="whatpga"><h2>What is PgAccess?</h2>
+PgAccess is a graphical user interface for the PostgreSQL database management
+system written in the Tcl/Tk scripting language by Constantin Teodorescu. It
+allows the user to interact with PostgreSQL in a manner similar to many PC
+database applications, with menu choices and graphical tools like buttons.
+This means that the user can avoid the basic command line interface for most
+common tasks. PgAccess doesn't change the way PostgreSQL operates, just makes
+it easier to use for those familiar with graphical interfaces.<p>
+Obviously, you <u>must</u> have PostgreSQL installed and running, and Tcl/Tk on
+your system before you can use PgAccess.<p>
+PgAccess is an "open source" application. The source code is available to the
+user, and may be modified by the user. The user can fix a bug, or change the
+way a function operates. You may not want to get that involved with the
+programming, but you have the option to do so. If you feel you have made an
+improvement to the program, you are encouraged to share it with other users.<p>
+If you are not familiar with how open source software can be altered and
+redistributed, please read <a href="copyright.html">this</a>.<p>
+<a name="helppga"><h2>How to get help with PgAccess</h2>
+The mailing list for PgAccess is: <b>pgsql-interfaces@postgresql.org</b><p>
+If you have any questions regarding PgAccess you should subscribe to this
+list in the following way:<p>
+First subscribe to the list by sending an email message to:<p>
+<samp>pgsql-interfaces-request@postgresql.org</samp><p>
+Send a single line in the body of the message as follows:<p>
+<samp>subscribe</samp><p>
+In a short time you should receive a message beginning like this:<p>
+<samp>Welcome to the pgsql-interfaces mailing list!<br>
+...</samp><p>
+This will contain instructions on how to remove yourself from the mailing
+list, so save that message. You may only want to ask a few questions and then
+stop receiving messages.<p>
+You may also email <a href="mailto:teo@flex.ro">Constantin Teodorescu</a>
+directly, although writing to a mailing list with many correspondents will often
+produce a quicker answer.<p>
+<a href="index.html#intro">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/irix.html b/src/bin/pgaccess/doc/html/tutorial/irix.html
new file mode 100644
index 00000000000..7d472aa9cdc
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/irix.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>
+<a href="index.html#start">Back to index</a>
+</BODY>
+</HTML>
diff --git a/src/bin/pgaccess/doc/html/tutorial/newref.txt b/src/bin/pgaccess/doc/html/tutorial/newref.txt
new file mode 100644
index 00000000000..ef2185f4b78
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/newref.txt
@@ -0,0 +1 @@
+Cassileth, BR~Unorthodox Cancer Medicine~Cancer Investigation~~1986~4~6~591-598
diff --git a/src/bin/pgaccess/doc/html/tutorial/newtable.jpg b/src/bin/pgaccess/doc/html/tutorial/newtable.jpg
new file mode 100644
index 00000000000..06af40e7410
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/newtable.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/newtable.tga b/src/bin/pgaccess/doc/html/tutorial/newtable.tga
new file mode 100644
index 00000000000..6104f58bd85
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/newtable.tga
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/problems.html b/src/bin/pgaccess/doc/html/tutorial/problems.html
new file mode 100644
index 00000000000..2238fb617d8
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/problems.html
@@ -0,0 +1,83 @@
+<html><head><title>PgAccess - Common Problems</title></head>
+<body bgcolor="#C0C0C0">
+<h1>Common Problems with PgAccess</h1>
+<a name="connfail"><h2>Connection failure</h2>
+One of the most common initial problems is the message:<p>
+<samp>Error connecting database<br>
+Connection to database failed<br>
+connectDB() failed: Is the<br>
+postmaster running and<br>
+accepting TCP/IP (with -i)<br>
+connections at 'localhost' on<br>
+port '5432'?</samp><p>
+This usually occurs because the "postmaster" (the postgreSQL backend) was not
+started with the <samp>-i</samp> option. Usually just adding <samp>-i</samp> to
+the command line that starts the postmaster and restarting will fix this.<p>
+If you have installed the prewritten script to start <b>postgreSQL</b>
+automatically, this option is (currently) commented out:<p>
+<samp># PGOPTS="-i"</samp><p>
+just remove the hash and space and comment out the "blank" option above:<p>
+<samp>PGOPTS=""</samp><p>
+<a name="nonuser"><h2>User not defined</h2>
+Initially, <b>postgreSQL</b> only has one user, <samp>postgres</samp>, and any
+other user who starts up PgAccess will get the message:<p>
+<samp>Error connecting database<br>
+Connection to database failed<br>
+FATAL 1: SetUserId: user<br>
+'jim' is not in 'pg_shadow'</samp><p>
+See <b>User Administration</b> in the <b>PgAccess tutorial</b> for a description
+of how to create users.<p>
+<a name="libpg"><h2>libpgtcl not found</h2>
+PgAccess requires a library of functions named <samp>libpgtcl</samp>. This
+should be available with the postgreSQL distribution, and is usually placed in
+the correct location when installing postgreSQL. First check that there is a
+file named <samp>libpgtcl.so</samp> (perhaps with a number appended - or
+<samp>libpgtcl.dll</samp> on Windows systems) on your
+system. If not, you will have to download and perhaps compile this library.<p>
+<samp>ftp://ftp.flex.ro/pub/pgaccess</samp><p>
+is one place that you can download precompiled libpgtcl libraries for
+PgAccess.<p>
+<a name="spchar">
+<h2>Locale specific characters</h2>
+This problem occurs with some special characters used in different
+countries because PgAccess did not use fonts with `-ISO8859-1' encoding.<p>
+One solution was proposed by H.P.Heidinger ( hph@hphbbs.ruhr.de) and
+is very simple.<p>
+If you look in the file pgaccess.tcl, you will find the fonts declared in
+this manner:<p>
+<TT>$ grep -e '-font' -i pgaccess.tcl<BR>
+-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \<br>
+...</TT></P>
+The font declarations should be altered to:<p>
+<tt>-font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-iso8859-1<br>
+...</tt><p>
+That is, inserting an asterisk between the first pair of hyphens, and changing
+the final two asterisks to <samp>iso8859</samp> and <samp>1</samp>
+respectively.<p>
+You can alter the source code by running the following script :
+<P><TT>#!/bin/sh<BR>
+cp pgaccess.tcl pgaccess.tcl-org<BR>
+cat pgaccess.tcl |\<BR>
+sed -e's/\-\*\-\*\ /\-iso8859\-1\ /g' |\<BR>
+sed -e's/\-\*\-\*\}/\-iso8859\-1}/g' |\<BR>
+sed -e's/\-\*\-\*\]/\-iso8859\-1]/g' |\<BR>
+sed -e's/\-\*\-\*$/\-iso8859\-1/g' |\<BR>
+sed -e's/\-Clean\-/\-Fixed\-/g' |\<BR>
+sed -e's/clean/fixed/g' &gt;pgaccess.iso<BR>
+mv pgaccess.iso pgaccess.tcl<BR>
+chmod +x pgaccess.tcl</TT><P>
+The final version of PgAccess (1.0) will let the user decide what fonts
+will be used through a &quot;preferences&quot; dialog window.</p>
+<a name="pg63">
+<h2>Problem with PostgreSQL 6.3.x</h2>
+PgAccess 0.93 and later may have problems working with PostgreSQL 6.3.x.
+Changes in libpgtcl have been made to remove these, but if you are
+using PostgreSQL 6.3.x, this patch will allow you to get around the problems.<p>
+In the procedure <tt>wpg_exec</tt> change the following line:<p>
+<tt>set pgsql(errmsg) [pg_result $pgsql(res) -error]</tt><p>
+to this:<p>
+<tt>set pgsql(errmsg) "NO ERROR INFORMATION SUPPLIED"</tt><p>
+and the program will work. The only disadvantage is that with some error
+conditions, you will not get the appropriate error message from libpgtcl.<p>
+<a href="index.html#problems">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/screen1.jpg b/src/bin/pgaccess/doc/html/tutorial/screen1.jpg
new file mode 100644
index 00000000000..572b5077d10
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/screen1.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/sel_tbl.jpg b/src/bin/pgaccess/doc/html/tutorial/sel_tbl.jpg
new file mode 100644
index 00000000000..548dbeead37
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/sel_tbl.jpg
Binary files differ
diff --git a/src/bin/pgaccess/doc/html/tutorial/start.html b/src/bin/pgaccess/doc/html/tutorial/start.html
new file mode 100644
index 00000000000..8ad8c2ae18f
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/start.html
@@ -0,0 +1,74 @@
+<html><head><title>PgAccess - Getting Started</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess - Getting Started</h1>
+<a name="getpga"><h2>How to get PgAccess</h2>
+If you have this HTML help system, you have probably already downloaded
+PgAccess. If not, or you wish to download the latest version, it is available
+from the URL:<p>
+<samp>http://www.flex.ro</samp><p>
+The home page will contain instructions on which files to download for your
+operating system. Download the file to a directory where the program will
+eventually reside (see below).<p>
+<a name="uncpga"><h2>How to uncompress PgAccess</h2>
+PgAccess, like most applications available for download, is usually downloaded
+in compressed format to save download time. You must uncompress these files in
+order to use the application.<p>
+<h3>UNIX (Linux, BSD, IRIX, Solaris, etc.)</h3>
+The files will be compressed using "gzip" and packaged using "tar", and have
+filenames like this:<p>
+<samp>pgaccess-n.nn.tar.gz</samp><p>
+Note that "n.nn" will be the version number in an actual file.<p>
+First decide where you want to have the program. A typical location on UNIX
+systems is <samp>/usr/local/src/&lt;name&gt;</samp>, where &lt;name&gt; is the name of
+the program. To use this location, download or move the "tar.gz" file to the
+directory <samp>/usr/local/src</samp>. Change to that directory, and
+uncompress the file with the command:<p>
+<samp>tar -zxvf pgaccess-n.nn.tar.gz</samp><p>
+You should see the files listed as they are uncompressed and placed in the new
+directory, and now have a directory named:<p>
+<samp>/usr/local/src/pgaccess</samp><p>
+In that directory will be all of the files that were packaged in the downloaded
+file. When you have PgAccess working, you can delete the file with the ".tar"
+or ".tar.gz" extension.
+<h3>Windows</h3>
+The files will be compressed so that "WinZip" will uncompress the package. Just
+open the file with "WinZip" and the program files will be extracted.<p>
+<a name="putpga"><h2>Putting PgAccess where it will be found</h2>
+<h3>UNIX</h3>
+In order to run PgAccess easily, the program file "pgaccess.tcl" should be in a
+location on the "PATH" of the system. You can find out what the PATH is by
+entering:<p>
+<samp>echo $PATH<br>
+/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:./:/usr/local/pgsql/bin
+</samp><p>
+Usually the directory <samp>/usr/local/bin</samp> will be in your PATH, and that
+is a fairly common place to put programs like PgAccess. Other common
+directories in the PATH are <samp>/usr/bin</samp> and <samp>/usr/sbin</samp>.
+Simply move the file "pgaccess.tcl" to the directory where you want it.<p>
+<h3>Windows</h3>
+You will usually link PgAccess to an icon, so just specify the full path to the
+program when you create the icon.
+<a name=startpga"><h2>Starting PgAccess</h2>
+The easiest way to start PgAccess is to simply invoke the program by name:<p>
+<samp>pgaccess.tcl</samp><p>
+If the program has been placed in a directory listed in the PATH, the PgAccess
+window should appear.<p>
+<h3>Starting from a menu</h3>
+Most users will want to link the program to a menu or icon so that it can be
+started using the mouse or other pointing device. Here is a method that will
+work on most Linux X-Windows systems. Create a file named "pgaccess" in the directory
+<samp>/etc/X11/wmconfig</samp> with the following contents:<p>
+<samp>pgaccess name "PgAccess"<br>
+pgaccess description "postgreSQL frontend"<br>
+pgaccess mini-icon "mini-pgaccess.xpm"<br>
+pgaccess group "Applications"<br>
+pgaccess exec "pgaccess.tcl &"</samp><p>
+This assumes that you have an "Applications" sub-menu. You may prefer
+"Programs" or some other place. Also, you will have to create the
+"mini-pgaccess.xpm" icon if you want it to appear. You can edit an existing
+icon from the <samp>/usr/share/icons/mini</samp> directory in XPaint and rename
+it. When you next start an X-Windows session, there should be a "PgAccess" item
+on the menu that you have chosen. Clicking on this item should start
+PgAccess.<p>
+<a href="index.html#start">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/tut.html b/src/bin/pgaccess/doc/html/tutorial/tut.html
new file mode 100644
index 00000000000..e5387e618df
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/tut.html
@@ -0,0 +1,50 @@
+<html><head><title>PgAccess - Tutorial</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess - Tutorial</h1>
+<a name="admin"><h2>User Administration</h2>
+The procedure for setting up <b>postgreSQL</b> usually results in a single user
+named <samp>postgres</samp>. In order for anyone else to use <b>postgreSQL</b>,
+users must be added. The program <samp>createuser</samp> accomplishes this.
+First become the PostgreSQL administrator (usually <samp>postgres</samp>):<p>
+<samp>su postgres</samp><p>
+Then create a new user:<p>
+<samp>createuser jim<br>
+Enter user's postgres ID or RETURN to use unix user ID: 500 -&gt;<br>
+Is user "jim" allowed to create databases (y/n) y<br>
+Is user "jim" a superuser? (y/n) n<br>
+createuser: jim was successfully added</samp><p>
+You can use either the UNIX user ID or the postgres ID to identify users. See
+the <b>postgreSQL</b> documentation in the "admin" section for a fuller
+account of users and groups.<p>
+To remove users, use the <samp>destroyuser</samp> command in the same way.<p>
+<img src="screen1.jpg" border=1 align=right>
+<a name="basic"><h2>Basic use of PgAccess</h2>
+<h3>Creating a database</h3>
+At the right is the window you should see when PgAccess starts up. The first
+task for most users will be to create a database.<p>
+Press the <em>New</em> button to bring up the window shown below. This will
+allow you to specify the structure of the new table. It is important to note
+that if you haven't specified a database when starting up PgAccess, this table
+will be created in the database named <samp>&lt;username&gt;</samp>, your
+username.<p>
+Assume that you want to create a table with entries describing bibliographic
+references in the field of chemistry. Choose a table name, such as
+<samp>chemref</samp> that will be easy to recall and find in a list. Enter the
+table name in the first input field.<p>
+When you already have tables in a database, you can use the <em>Inherits</em>
+button to toggle a list of existing tables to inherit characteristics of another
+table. In this example, there should be no previous tables to use.<p>
+Enter each field, giving it a name, field type and size, if the field type does
+not imply the size. That is, if your first field was to be a sequence number,
+and you selected <em>int2</em> as the field type, you would not have to specify
+a field size. However, if your second field was to contain the author of the
+reference, and was a <em>varchar</em> type, you would have to specify how many
+characters would be allowed in the field.<p>
+As you enter each field, click the <em>Add field</em> button to add it to the
+list at the right side of the window. You can change the position of fields
+using the <em>Move field up</em> and <em>Move field down</em> buttons, or delete
+a field if you decide it isn't what you wanted. When you are finished
+specifying fields, press the <em>Create table</em> button.<p>
+<img src="newtable.jpg" border=1 align=right>
+<a href="index.html#tut">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/tut_edit.html b/src/bin/pgaccess/doc/html/tutorial/tut_edit.html
new file mode 100644
index 00000000000..8282fb9a422
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/tut_edit.html
@@ -0,0 +1,39 @@
+<html><head><title>PgAccess Tutorial</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess Tutorial - Editing a table</h1>
+<img src="sel_tbl.jpg" border=1 align=right>
+<h2>Adding records</h2>
+Once you have a table, you can begin to add entries to it. In the main
+PgAccess window, when you click the <em>Tables</em> button, you should see the
+new table appear in the list of tables. Highlighting the table name by clicking
+on it and clicking on the <em>Open</em> button will open that table in another
+window, as shown below.<p>
+The most straighforward way to add records to a table is to type the information
+directly into the fields. Two records have been entered in the table shown. As
+is common with this user interface, clicking the mouse while the pointer is in a
+field will allow keyboard entry to that field. This type of entry is adequate
+when the information arrives infrequently in small parcels, for instance in
+keeping a table of contact information about other researchers. However, what
+do you do when someone emails you the entire reference list for their doctoral
+dissertation?<p>
+This is best handled using the SQL <em>COPY</em> command.
+First, the information will have to be massaged into shape in what is called a
+'flat' ASCII file. This is simply a text file in which each line is a record,
+and each field in each record is separated by a <em>delimiter</em> such as a
+tilde (~). The fields will have to be in the same order as those in your table,
+and there will have to be the same number of fields in each record as are in the
+table, otherwise you may get unexpected data or no data at all. Say you produce
+a text file named <samp>newref.txt</samp> that starts like this:<p>
+<samp>Cassileth, BR~Unorthodox Cancer Medicine~Cancer Investigation~~1986~4~6~591-598
+<br>...</samp><p>
+Notice that there are two consecutive tildes to allow for the fact that this
+particular entry doesn't have anything in the <b>Editor</b> field.
+You can then perform a <em>Query</em> as follows:<p>
+<samp>COPY psyref FROM '/home/jim/newref.txt' USING DELIMITERS
+'~';</samp><p>
+This will read the records from <samp>newref.txt</samp> and insert them into the
+table <samp>psyref</samp>. See the PostgreSQL documentation under the headings
+<br><b>Tutorial|The Query Language|Populating a Class with Instances</b><p>
+<img src="addref.jpg" border=1 align=right>
+<a href="index.html#tut">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/tut_new.html b/src/bin/pgaccess/doc/html/tutorial/tut_new.html
new file mode 100644
index 00000000000..8fca641e6c0
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/tut_new.html
@@ -0,0 +1,36 @@
+<html><head><title>PgAccess Tutorial</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess Tutorial - Creating a table</h1>
+<img src="screen1.jpg" border=1 align=right>
+<h2>Creating a table</h2>
+At the right is the window you should see when PgAccess starts up. The first
+task for most users will be to create a database. Notice the 'buttons' at the
+left of the main window. Clicking on these allows you to see the names of
+different <em>objects</em> that are stored in your database, which should be
+empty at the moment.<p>
+Click the <em>Tables</em> and <em>New</em> buttons to bring up the window shown
+below. This will allow you to specify the structure of the new table. It is
+important to note that if you haven't specified a database when starting up
+PgAccess, this table will be created in the database named
+<samp>&lt;username&gt;</samp>, your username.<p>
+Assume that you want to create a table with entries describing bibliographic
+references in the field of psychology. Choose a table name, such as
+<samp>psyref</samp> that will be easy to recall and find in a list. Enter the
+table name in the first input field.<p>
+When you already have tables in a database, you can use the <em>Inherits</em>
+button to toggle a list of existing tables to inherit characteristics of another
+table. In this example, there should be no previous tables to use.<p>
+Enter each field, giving it a name, field type and size, if the field type does
+not imply the size. That is, if your first field was to be a sequence number,
+and you selected <em>int2</em> as the field type, you would not have to specify
+a field size. However, if your second field was to contain the author of the
+reference, and was a <em>varchar</em> type, you would have to specify how many
+characters would be allowed in the field.<p>
+As you enter each field, click the <em>Add field</em> button to add it to the
+list at the right side of the window. You can change the position of fields
+using the <em>Move field up</em> and <em>Move field down</em> buttons, or delete
+a field if you decide it isn't what you wanted. When you are finished
+specifying fields, press the <em>Create table</em> button.<p>
+<img src="newtable.jpg" border=1 align=right>
+<a href="index.html#tut">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/tut_sel1.html b/src/bin/pgaccess/doc/html/tutorial/tut_sel1.html
new file mode 100644
index 00000000000..fdadbe8e6d3
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/tut_sel1.html
@@ -0,0 +1,36 @@
+<html><head><title>PgAccess Tutorial</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess Tutorial - SELECT</h1>
+<img src="altern_q.jpg" border=1 align=right>
+<h2>What is a query?</h2>
+<em>Query</em> is the term for an SQL command which will perform an operation
+on a table. It is sometimes confusing to newcomers, as some of the operations
+seem to have nothing to do with querying in the common sense of <em>asking</em>.
+As we saw in the previous section, a <em>query</em> can simply copy
+records from an ASCII file to a table.<p>
+The PostgreSQL documentation has a complete list of <em>queries</em> that can be
+used. We'll start with the common task of selecting records with certain
+characteristics.<p>
+<h2>Selecting records</h2>
+<img src="altern_v.jpg" border=1 align=right>
+Suppose that I want to know all of the references in the sample table
+<em>psyref</em> for which the word "alternative" appeared in the title.<p>
+By clicking <em>Query</em>, then <em>New</em>, a <b>Query builder</b> window will
+appear. Clicking in the area below the buttons will allow the user to enter an
+SQL <em>query</em>. The specification of the <em>query</em> must be exact or
+PostgreSQL will return an error message.<p>
+The <em>query</em> shown will <b>SELECT</b> those records from <em>psyref</em>
+that contain the word "alternative" anywhere in the <em>title</em> field. The
+'*' indicates that all of the fields are to be returned. You might only want to
+return, for instance, the <em>author</em> field if you were only interested in
+which authors had used that word in the title of their work.<p>
+At the right is the record that fulfils these conditions, displayed in the
+<b>Table viewer</b>. If you wanted to save this query for use again,
+clicking the <em>Save query definition</em> button will do so. You will then
+see <em>altern</em> listed under <em>Queries</em> when you return to the main
+window. By clicking the <em>Save this query as a view</em> tickbox in the
+<b>Query builder</b>, the result of your query will be saved as a
+<em>View</em> which you can access from <em>Views</em> in the main window.
+Click the <em>Close</em> button to leave the <b>Query builder</b>.<p>
+<a href="index.html#tut">Back to index</a>
+</body></html>
diff --git a/src/bin/pgaccess/doc/html/tutorial/tut_user.html b/src/bin/pgaccess/doc/html/tutorial/tut_user.html
new file mode 100644
index 00000000000..c4a6f09fbb3
--- /dev/null
+++ b/src/bin/pgaccess/doc/html/tutorial/tut_user.html
@@ -0,0 +1,28 @@
+<html><head><title>PgAccess Tutorial</title></head>
+<body bgcolor="#C0C0C0">
+<h1>PgAccess Tutorial - User Administration</h1>
+While user administration is really not a part of the PgAccess program, it is
+such a basic operation that a brief description is given here.
+<h2>Creating users</h2>
+The procedure for setting up <b>postgreSQL</b> usually results in a single user
+named <samp>postgres</samp>. In order for anyone else to use <b>postgreSQL</b>,
+users must be added. The program <samp>createuser</samp> accomplishes this.
+First become the PostgreSQL administrator (usually <samp>postgres</samp>):<p>
+<samp>su postgres</samp><p>
+Then create a new user:<p>
+<samp>createuser jim<br>
+Enter user's postgres ID or RETURN to use unix user ID: 500 -&gt;<br>
+Is user "jim" allowed to create databases (y/n) y<br>
+Is user "jim" a superuser? (y/n) y<br>
+createuser: jim was successfully added</samp><p>
+You can use either the UNIX user ID or the postgres ID to identify users. See
+the <b>postgreSQL</b> documentation in the "admin" section for a fuller
+account of users and groups.<p>
+The reason for using the command line to create the first user (other than
+<em>postgres</em>) is that <em>postgres</em> may not have X-Window permission.
+You can also create users using <b>PgAccess</b> if you are created as a
+<em>superuser</em> as shown in the example above.<p>
+<h2>Removing users</h2>
+To remove users, use the <samp>destroyuser</samp> command in the same way.<p>
+<a href="index.html#tut">Back to index</a>
+</body></html>