fixing it more..
After Width: | Height: | Size: 207 B |
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,232 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h2>
|
||||
PgAccess developer API</h2>
|
||||
|
||||
<hr>
|
||||
<br>Starting with PgAccess 0.98 I am planning to make available a complete
|
||||
API for the PgAccess developers. I plan to make PgAccess not just an administrative
|
||||
tool, but also a tool for easy build of small applications.
|
||||
<p>That's why PgAccess 0.98 has been internally restructured, every main
|
||||
module of PgAccess has became a namespace (see Tcl namespaces) in order
|
||||
to hide the variables and internal procedures to the user. Also, all the
|
||||
global variables that have been used before were grouped under a single
|
||||
big associative array called <b>PgAcVar</b> (PgAccess variables) so they
|
||||
should not interfere with user defined global variables.
|
||||
<br>
|
||||
<br>
|
||||
<p><b><font size=+1>Global variables available</font></b>
|
||||
<br>
|
||||
<center><table BORDER=0 WIDTH="100%" NOSAVE >
|
||||
<tr NOSAVE>
|
||||
<td ALIGN=LEFT VALIGN=TOP NOSAVE><b>PgAcVar</b></td>
|
||||
|
||||
<td>The main global associative array that hold together various information
|
||||
needed by PgAccess. User should <b><font color="#FF0000">NOT</font></b>
|
||||
alter it under any circumstances.</td>
|
||||
</tr>
|
||||
|
||||
<tr NOSAVE>
|
||||
<td VALIGN=TOP NOSAVE><b>CurrentDB</b></td>
|
||||
|
||||
<td>The handler of the current opened database. Can be used for database
|
||||
operations as selects or command execution.</td>
|
||||
</tr>
|
||||
|
||||
<tr NOSAVE>
|
||||
<td ALIGN=LEFT VALIGN=TOP NOSAVE><b>Messages</b></td>
|
||||
|
||||
<td NOSAVE>The associative array that holds the translation for the current
|
||||
language. Loaded from the appropriate language file from lib/languages
|
||||
directory</td>
|
||||
</tr>
|
||||
|
||||
<tr NOSAVE>
|
||||
<td ALIGN=LEFT VALIGN=TOP NOSAVE><b>PGACCESS_HOME</b></td>
|
||||
|
||||
<td>Keep the system directory of PgAccess root installation</td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<br>
|
||||
<p><b><font size=+1>Window naming convention</font></b>
|
||||
<p>Every toplevel window defined by PgAccess has the following naming convention.
|
||||
Every window name starts with <tt>.pgaw</tt> (PgAccess window) followed
|
||||
by a colon and a name. <i>Example:</i>
|
||||
<blockquote><tt>.pgaw:User , .pgaw:About , .pgaw:ImportExport</tt></blockquote>
|
||||
<b><font size=+1>Namespaces available</font></b>
|
||||
<p>For every tab from the main database window there is a namespace defined
|
||||
(Tables, Queries, Views, Functions, Sequences, Reports, Forms, Scripts,
|
||||
Users, Schema). Every namespace has by default the following procedures:
|
||||
<ul>
|
||||
<li>
|
||||
<tt>new</tt> , no parameter needed</li>
|
||||
|
||||
<li>
|
||||
<tt>open</tt> , need a single parameter, the object name</li>
|
||||
|
||||
<li>
|
||||
<tt>design</tt> , need a single parameter, the object name</li>
|
||||
</ul>
|
||||
You can use these procedures if you want to produce the same efects as
|
||||
clicking on the desired tab and then on the "New", "Open" or "Design" buttons
|
||||
from the main database window.
|
||||
<br><i>Example:</i>
|
||||
<blockquote><tt>Tables::open "customers"</tt>
|
||||
<br><tt>Queries::open "Invoices received"</tt>
|
||||
<br><tt>Forms::open "Add new invoice"</tt></blockquote>
|
||||
The <tt>Tables::open</tt> procedure accepts two optional parameters, filter
|
||||
and order.
|
||||
<br><i>Example:</i>
|
||||
<blockquote><tt>Tables::open "phonebook" "name ~* 'joe'" "age desc"</tt></blockquote>
|
||||
will open a table view window with predefined filter "name ~* 'joe'" and
|
||||
ordered by descending age.
|
||||
<p>There is also a special namespace called Database. Here are some
|
||||
procedures and functions defined for this namespace available to the user:
|
||||
<br>
|
||||
<table BORDER NOSAVE >
|
||||
<tr BGCOLOR="#FFCCFF" NOSAVE>
|
||||
<td NOSAVE><b>Name</b></td>
|
||||
|
||||
<td NOSAVE><b>Parameters</b></td>
|
||||
|
||||
<td><b>Type</b></td>
|
||||
|
||||
<td><b>Returns</b></td>
|
||||
|
||||
<td NOSAVE><b>Description</b></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>vacuum</b></td>
|
||||
|
||||
<td>none</td>
|
||||
|
||||
<td>procedure</td>
|
||||
|
||||
<td>nothing</td>
|
||||
|
||||
<td>vacuums the current database</td>
|
||||
</tr>
|
||||
|
||||
<tr ALIGN=LEFT VALIGN=TOP NOSAVE>
|
||||
<td><b>getTablesList</b></td>
|
||||
|
||||
<td>none</td>
|
||||
|
||||
<td>function</td>
|
||||
|
||||
<td>list</td>
|
||||
|
||||
<td NOSAVE>returns the list of tables from the current database</td>
|
||||
</tr>
|
||||
|
||||
<tr ALIGN=LEFT VALIGN=TOP NOSAVE>
|
||||
<td><b>executeUpdate</b></td>
|
||||
|
||||
<td>sqlcmd</td>
|
||||
|
||||
<td>function</td>
|
||||
|
||||
<td>integer</td>
|
||||
|
||||
<td NOSAVE>execute the sqlcmd command on the current database returning
|
||||
1 if no errors ocurred or 0 if the command failed</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><b><font size=+1>Global functions available</font></b>
|
||||
<br>
|
||||
<table BORDER NOSAVE >
|
||||
<tr BGCOLOR="#99FFCC" NOSAVE>
|
||||
<td><b>Name</b></td>
|
||||
|
||||
<td><b>Parameters</b></td>
|
||||
|
||||
<td NOSAVE><b>Description</b></td>
|
||||
</tr>
|
||||
|
||||
<tr ALIGN=LEFT VALIGN=TOP NOSAVE>
|
||||
<td><b>setCursor</b></td>
|
||||
|
||||
<td>type</td>
|
||||
|
||||
<td NOSAVE>Set the cursor for all PgAccess windows, type of cursor can
|
||||
be WAIT or CLOCK or WATCH for the hourglass , anything else (or none) to
|
||||
return to the normal cursor shape</td>
|
||||
</tr>
|
||||
|
||||
<tr ALIGN=LEFT VALIGN=TOP NOSAVE>
|
||||
<td><b>parameter</b></td>
|
||||
|
||||
<td>msg</td>
|
||||
|
||||
<td NOSAVE>Shows a modal input dialog with the msg message, wait for user
|
||||
to enter the data and returns it as a string</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>showError</b></td>
|
||||
|
||||
<td>msg</td>
|
||||
|
||||
<td>Shows a modal dialog window with an error message</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 176 B |
|
@ -0,0 +1,29 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
<base target="right">
|
||||
</head>
|
||||
<body bgcolor="#00FFFF">
|
||||
<img SRC="ball.gif" ><a href="main.html">What is PgAccess?</a>
|
||||
<br><img SRC="ball.gif" ><a href="whatsnew.html">What's new?</a>
|
||||
<br><img SRC="ball.gif" ><a href="features.html">Features</a>
|
||||
<br><img SRC="ball.gif" ><a href="screenshots.html">Screenshots</a>
|
||||
<br><img SRC="ball.gif" ><a href="faq.html">FAQ</a>
|
||||
<br><img SRC="ball.gif" ><a href="documentation.html">Documentation</a>
|
||||
<br><img SRC="ball.gif" ><a href="todo.html">To-Do list</a>
|
||||
<br><img SRC="ball.gif" ><a href="download.html">Download</a>
|
||||
<br>
|
||||
<p><br>
|
||||
<center>
|
||||
<p><a href="http://www.linux.org"><img SRC="linux1.gif" BORDER=0 ></a></center>
|
||||
|
||||
<p><b>Other links</b>
|
||||
<br><img SRC="ball.gif" ><a href="http://www.postgresql.org">PostgreSQL</a>
|
||||
<br><img SRC="ball.gif" ><a href="http://www.neuron.com/stewart/vtcl/index.html">Visual Tcl</a>
|
||||
<br><img SRC="ball.gif" ><a href="http://www.scriptics.com">Tcl/Tk</a>
|
||||
<br><img SRC="ball.gif" ><a href="http://www.linux.org">Linux</a>
|
||||
<br><img SRC="ball.gif" ><a href="http://www.java.ro/vtclava/index.html">vTcLava</a>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,39 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (X11; I; Linux 2.0.30 i586) [Netscape]">
|
||||
<TITLE>PgAccess - Copyright notice</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<TT>---------------------------------------------------------------------------</TT>
|
||||
<BR><TT></TT>
|
||||
<BR><TT></TT> <TT></TT>
|
||||
|
||||
<P><TT>Copyright (c) 1994-7 Regents of the University of California</TT><TT></TT>
|
||||
|
||||
<P><TT>Permission to use, copy, modify, and distribute this software and
|
||||
its</TT>
|
||||
<BR><TT>documentation for any purpose, without fee, and without a written
|
||||
agreement</TT>
|
||||
<BR><TT>is hereby granted, provided that the above copyright notice and
|
||||
this</TT>
|
||||
<BR><TT>paragraph and the following two paragraphs appear in all copies.</TT><TT></TT>
|
||||
|
||||
<P><TT>IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
|
||||
PARTY FOR</TT>
|
||||
<BR><TT>DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||
INCLUDING</TT>
|
||||
<BR><TT>LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS</TT>
|
||||
<BR><TT>DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
|
||||
OF THE</TT>
|
||||
<BR><TT>POSSIBILITY OF SUCH DAMAGE.</TT><TT></TT>
|
||||
|
||||
<P><TT>THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,</TT>
|
||||
<BR><TT>INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY</TT>
|
||||
<BR><TT>AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER
|
||||
IS</TT>
|
||||
<BR><TT>ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS
|
||||
TO</TT>
|
||||
<BR><TT>PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.</TT>
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h2>
|
||||
Documentation</h2>
|
||||
|
||||
<hr WIDTH="100%">
|
||||
<p>Still need to be written. Some information can be found in the help
|
||||
included in the main program.
|
||||
<p>Jim Lemon <Jim.Lemon@uts.EDU.AU> has started writing a <a href="tutorial/index.html">tutorial</a>.
|
||||
Thought it is based on earlier versions than 0.98 it is a beginning after
|
||||
all, isn't it ?
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h2>
|
||||
Download</h2>
|
||||
|
||||
<hr>
|
||||
<br>The primary site for PgAccess downloads is:
|
||||
<ul><a href="ftp://ftp.flex.ro/pub/pgaccess">ftp://ftp.flex.ro/pub/pgaccess</a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.tar.gz">Unix tar.gz
|
||||
file</a></li>
|
||||
|
||||
<li>
|
||||
<a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.zip">Windows .zip
|
||||
file</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<p>Another one (just with a little bit faster, try this one first) would
|
||||
be :
|
||||
<ul><a href="ftp://speedy.flex.ro/pub/pgaccess">ftp://speedy.flex.ro/pub/pgaccess</a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="ftp://speedy.flex.ro/pub/pgaccess/pgaccess-0.98.tar.gz">Unix tar.gz
|
||||
file</a></li>
|
||||
|
||||
<li>
|
||||
<a href="ftp://speedy.flex.ro/pub/pgaccess/pgaccess-0.98.zip">Windows .zip
|
||||
file</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,85 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.12 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h2>
|
||||
PgAccess - FAQ</h2>
|
||||
|
||||
<hr>
|
||||
<br><b>1. When I run PgAccess I got a message complaining about the crypt
|
||||
library! What should I do?</b>
|
||||
<blockquote>Versions of PostgreSQL prior to 6.5.1 couldn't reliably detect
|
||||
the presence of the crypt library on RedHat 5.x systems. That's why the
|
||||
libpgtcl library does not include reference to crypt. You will need to
|
||||
get a proper copy of libpgtcl.so library or to compile one. Go to the postgresql
|
||||
source directory into src/interfaces/libpgtcl and edit Makefile adding
|
||||
-lcrypt to the end of the line SHLIB_LINKS. Make clean and make again.
|
||||
Your libpgtcl.so is now prepare to run PgAccess. I strongly recommend you
|
||||
to upgrade to PostgreSQL 6.5.1 where this problem has been solved.</blockquote>
|
||||
<b>2. I cannot connect to a database from another machine</b>
|
||||
<blockquote>There may be two problems here. First of all, PgAccess running
|
||||
on the localhost is using two PostgreSQL dependent libraries, libpq and
|
||||
libpgtcl. Each of them are compiled for a specific PostgreSQL version.
|
||||
If the PostgreSQL version running on your server is different you might
|
||||
experience problems. The other problem is related to access rights. On
|
||||
the PostgreSQL server, in data directory there is a file pg_hba.conf that
|
||||
will grant access rights to users based on host authentication. Ask your
|
||||
database administrator to check if your workstation is listed there with
|
||||
the appropriate access rights. Try for the beginning the 'trust' mode,
|
||||
allowing full access to the databases.</blockquote>
|
||||
<b>3. I am experiencing core dumps when trying to run PgAccess. Is PgAccess
|
||||
broken?</b>
|
||||
<blockquote>No. There were NEVER reported crashes because of PgAccess.
|
||||
All of them were related to bad libraries usage. The most frequent was
|
||||
the installing of a new PostgreSQL on a RedHat 5.x server where the postgresql-clients
|
||||
rpm still exists. So, PgAccess was trying to use the old libpgtcl.so library
|
||||
suitable for an older version of PostgreSQL. Before installing a new PostgreSQL
|
||||
(either by compiling it ot by rpm packages) remove ANY TRACE of old PostgreSQL.
|
||||
PgAccess is fully relying on libpgtcl library in order to get access to
|
||||
the database so when you are experiencing that kind of problems, double-check
|
||||
libpq and libpgtcl libraries.</blockquote>
|
||||
<b>4. When I try to run PgAccess I get the following error : Application
|
||||
initialization failed: couldn't connect to display ""</b>
|
||||
<blockquote>That kind of error was reported on some Linux RedHat 5.x systems
|
||||
when user has su - to root and tried to run PgAccess. Some unknown errors
|
||||
in login scripts are not defining the DISPLAY environment and the wish
|
||||
application cannot connect to the X display. Try typing <tt>export DISPLAY=localhost:0.0</tt>
|
||||
and run PgAccess again.</blockquote>
|
||||
<b>5. Cannot run PgAccess on a Windows machine.</b>
|
||||
<blockquote>In order to use PgAccess on Windows you must have installed
|
||||
two libraries libpq.dll and libpgtcl.dll suitable for your Tcl/Tk package
|
||||
and your PostgreSQL server. Note that libraries that work with Tcl/Tk 8.0.x
|
||||
won't work with Tcl/Tk 8.1.x and libraries that work with 6.4.2 backend
|
||||
won't work with 6.5.x. So, you must properly identify your Tcl/Tk package
|
||||
version and your PostgreSQL version and download from the Downloads section
|
||||
(or pick from the win32/dll directory of PgAccess distribution) the right
|
||||
files. Copy them into your Windows/System directory and try again. Also,
|
||||
you should be able to access over the network the machine running the PostgreSQL
|
||||
server (try ping-ing it) and have the proper access rights to the database.</blockquote>
|
||||
<b>6. How much costs PgAccess?</b>
|
||||
<blockquote>PgAccess is a free tool. You won't have to pay anything in
|
||||
order to use it. It is protected by the following <a href="copyright.html">copyright</a>
|
||||
as PostgreSQL is. I cannot guarantee technical support but I will try to
|
||||
answer to your questions as much as I can.</blockquote>
|
||||
<b>7. I want to translate PgAccess messages for xxx language. What should
|
||||
I do?</b>
|
||||
<blockquote>In the PgAccess distribution in lib/languages directory there
|
||||
are files with messages translated for different languages. Copy one of
|
||||
them and name it after your native language and then start editing it translating
|
||||
all the messages. Save it into the same directory and that's all. Don't
|
||||
forget to send me a copy in order to include it into the standard distribution.</blockquote>
|
||||
|
||||
<p><br><b>8. I am receiving the following error: <tt>message invalid command
|
||||
name "namespace" while executing "namespace eval Mainlib</tt> ..."</b>
|
||||
<blockquote>That means 100% that you have an older version of Tcl/Tk that
|
||||
don't recognize namespaces command. Please upgrade to Tcl/Tk 8.0.x minimum</blockquote>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,52 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
<b>Tables</b>
|
||||
<br>- opening multiple tables for viewing, max. n 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, plpgsql and pgtcl languages
|
||||
<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><b>Users</b>
|
||||
<br>- define and modify user information
|
||||
<p><b><a href="api.html">PgAccess API</a></b> for developing small applications
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,216 @@
|
|||
\connect - teo
|
||||
CREATE SEQUENCE "cities_id_seq" start 7 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
|
||||
SELECT nextval ('cities_id_seq');
|
||||
CREATE TABLE "pga_queries" (
|
||||
"queryname" character varying(64),
|
||||
"querytype" character,
|
||||
"querycommand" text,
|
||||
"querytables" text,
|
||||
"querylinks" text,
|
||||
"queryresults" text,
|
||||
"querycomments" text);
|
||||
CREATE TABLE "pga_forms" (
|
||||
"formname" character varying(64),
|
||||
"formsource" text);
|
||||
CREATE TABLE "pga_scripts" (
|
||||
"scriptname" character varying(64),
|
||||
"scriptsource" text);
|
||||
CREATE TABLE "pga_reports" (
|
||||
"reportname" character varying(64),
|
||||
"reportsource" text,
|
||||
"reportbody" text,
|
||||
"reportprocs" text,
|
||||
"reportoptions" text);
|
||||
CREATE TABLE "phonebook" (
|
||||
"name" character varying(32),
|
||||
"phone_nr" character varying(16),
|
||||
"city" character varying(32),
|
||||
"company" bool,
|
||||
"continent" character varying(16));
|
||||
CREATE TABLE "pga_layout" (
|
||||
"tablename" character varying(64),
|
||||
"nrcols" int2,
|
||||
"colnames" text,
|
||||
"colwidth" text);
|
||||
CREATE TABLE "pga_schema" (
|
||||
"schemaname" character varying(64),
|
||||
"schematables" text,
|
||||
"schemalinks" text);
|
||||
REVOKE ALL on "pga_schema" from PUBLIC;
|
||||
GRANT ALL on "pga_schema" to PUBLIC;
|
||||
CREATE TABLE "cities" (
|
||||
"id" int4 DEFAULT nextval('"cities_id_seq"') NOT NULL,
|
||||
"name" character varying(32) NOT NULL,
|
||||
"prefix" character varying(16) NOT NULL);
|
||||
CREATE FUNCTION "getcityprefix" (int4 ) RETURNS varchar AS 'select prefix from cities where id = $1 ' LANGUAGE 'SQL';
|
||||
COPY "pga_queries" FROM stdin;
|
||||
Query that can be saved as view S select * from phonebook where continent='usa' \N \N \N \N
|
||||
\.
|
||||
COPY "pga_forms" FROM stdin;
|
||||
Working with Tables namespace f3 13 {3 4 5 6 7 9 10 11 12 13} 377x263+59+127 {radio usa {36 24 138 36} {} USA selcont} {radio europe {36 45 141 60} {} Europe selcont} {radio africa {36 66 147 81} {} Africa selcont} {label label6 {9 99 339 114} {} {Select one of the above continents and press} {}} {button button7 {270 93 354 117} {Tables::open phonebook "continent='$selcont'" $selorder} {Show them} {}} {button button9 {66 189 312 213} {Tables::design phonebook} {Show me the phonebook table structure} {}} {button button10 {141 228 240 252} {destroy .f3} {Close the form} {}} {button button11 {93 141 282 165} {Tables::open phonebook "company=true"} {Show me only the companies} {}} {radio name {183 24 261 36} {} {Order by name} selorder} {radio phone_nr {183 45 267 57} {} {Order by phone number} selorder}
|
||||
A simple demo form asdf 14 {FS {set color none}} 370x310+50+75 {label label1 {15 36 99 57} {} {Selected color} {} label1 flat #000000 #d9d9d9 1} {entry entry2 {111 36 225 54} {} entry2 color entry2 sunken #000000 #fefefe 1} {radio red {249 21 342 36} {} {Red as cherry} color red flat #900000 #d9d9d9 1} {radio green {249 45 342 60} {} {Green as a melon} color green flat #008800 #d9d9d9 1} {radio blue {249 69 342 84} {} {Blue as the sky} color blue flat #00008c #d9d9d9 1} {button button6 {45 69 198 99} {set color spooky} {Set a weird color} {} button6 ridge #0000b0 #dfbcdf 2} {label label7 {24 129 149 145} {} {The checkbox's value} {} label7 flat #000000 #d9d9d9 1} {entry entry8 {162 127 172 145} {} entry8 cbvalue entry8 sunken #000000 #fefefe 1} {checkbox checkbox9 {180 126 279 150} {} {Check me :-)} cbvalue checkbox9 flat #000000 #d9d9d9 1} {button button10 {219 273 366 303} {destroy .asdf} {Close that simple form} {} button10 raised #000000 #d9d9d9 1} {button button11 {219 237 366 267} {Forms::open "Phone book"} {Open my phone book} {} button11 raised #000000 #d9d9d9 1} {listbox lb {12 192 162 267} {} listbox12 {} lb sunken #000000 #fefefe 1} {button button13 {12 156 162 186} {.asdf.lb insert end red green blue cyan white navy black purple maroon violet} {Add some information} {} button13 raised #000000 #d9d9d9 1} {button button14 {12 273 162 303} {.asdf.lb delete 0 end} {Clear this listbox} {} button14 raised #000000 #d9d9d9 1}
|
||||
Working with listboxes f2 5 {FS {set thestudent ""}} 257x263+139+147 {listbox lb {6 6 246 186} {} listbox1 {} lb sunken #000000 #ffffd4 1} {button button2 {9 234 124 258} {# Populate the listbox with some data\
|
||||
#\
|
||||
\
|
||||
foreach student {John Bill Doe Gigi} {\
|
||||
\ .f2.lb insert end $student\
|
||||
}\
|
||||
\
|
||||
\
|
||||
\
|
||||
# Binding the event left button release to the\
|
||||
# list box\
|
||||
\
|
||||
bind .f2.lb <ButtonRelease-1> {\
|
||||
\ set idsel [.f2.lb curselection]\
|
||||
\ if {$idsel!=""} {\
|
||||
\ \ set thestudent [.f2.lb get $idsel]\
|
||||
\ }\
|
||||
}\
|
||||
\
|
||||
# Cleaning the variable thestudent\
|
||||
\
|
||||
set thestudent {}} {Show students} {} button2 groove #000000 #d9d9d9 2} {button button3 {132 234 247 258} {destroy .f2} {Close the form} {} button3 groove #000000 #d9d9d9 1} {label label4 {9 213 119 228} {} {You have selected} {} label4 flat #000000 #d9d9d9 1} {label label5 {129 213 219 228} {} {} thestudent label5 flat #00009a #d9d9d9 1}
|
||||
The simplest form mf 5 {FS {set thename {}}} 306x136+82+146 {label label {42 45 99 60} {} Name {} label flat #000000 #d9d9d9 1 {Helvetica 12 bold italic}} {entry ename {120 42 219 63} {} entry2 thename ename sunken #000000 #fefefe 1 n} {button button3 {6 96 108 129} {set thename Teo} {Set the name} {} button3 raised #000000 #d9d9d9 1 n} {button button4 {192 96 300 129} {destroy .mf} {Close the form} {} button4 raised #000000 #d9d9d9 1 n} {button button5 {114 96 186 129} {set thename {}} {Clear it} {} button5 raised #000000 #d9d9d9 1 n}
|
||||
Full featured form full 21 {FS {set entrydemo {nice}\
|
||||
set color {no color selected}}} 377x418+50+130 {label label1 {3 396 165 411} {} {Status line} {} {} sunken #000000 #d9d9d9 2 n} {label label2 {171 396 369 411} {} {Grooved status line} {} {} groove #000098 #d9d9d9 2 f} {label label3 {108 9 270 31} {} { Full featured form} {} {} ridge #000000 #d9d9d9 4 {Times 16 bold italic}} {button button4 {15 210 144 243} {.full.lb insert end {it's} a nice demo form} {Java style button} {} {} groove #6161b6 #d9d9d9 2 b} {label label5 {15 42 115 58} {} {Java style label} {} {} flat #6161b6 #d9d9d9 1 b} {entry entry6 {123 39 279 60} {} entry6 entrydemo {} groove #000000 #fefefe 2 {Courier 13}} {listbox lb {12 69 147 201} {} listbox8 {} {} ridge #000000 #ffffc8 2 n} {button button9 {18 264 39 282} {} 1 {} {} flat #000000 #d9d9d9 1 n} {button button10 {48 264 68 282} {} 2 {} {} flat #000000 #d9d9d9 1 n} {button button11 {78 264 234 282} {} {and other hidden buttons} {} {} flat #000000 #d9d9d9 1 n} {text txt {153 69 372 201} {} text12 {} {} sunken #000000 #d4ffff 1 n} {button button13 {150 210 369 243} {.full.txt tag configure bold -font {Helvetica 12 bold}\
|
||||
.full.txt tag configure italic -font {Helvetica 12 italic}\
|
||||
.full.txt tag configure large -font {Helvetica -14 bold}\
|
||||
.full.txt tag configure title -font {Helvetica 12 bold italic} -justify center\
|
||||
.full.txt tag configure link -font {Helvetica -12 underline} -foreground #000080\
|
||||
.full.txt tag configure code -font {Courier 13}\
|
||||
.full.txt tag configure warning -font {Helvetica 12 bold} -foreground #800000\
|
||||
\
|
||||
# That't the way help files are written\
|
||||
\
|
||||
.full.txt delete 1.0 end\
|
||||
.full.txt insert end {Centered title} {title} "\
|
||||
\
|
||||
You can make different " {} "portions of text bold" {bold} " or italic " {italic} ".\
|
||||
Some parts of them can be written as follows" {} "\
|
||||
SELECT * FROM PHONEBOOK" {code} "\
|
||||
You can also change " {} "colors for some words " {warning} "or underline them" {link} } {Old style button} {} {} raised #000000 #d9d9d9 2 n} {checkbox checkbox14 {48 297 153 309} {} different {} {} flat #00009c #d9d9d9 1 b} {checkbox checkbox15 {48 321 156 336} {} {fonts and} {} {} flat #cc0000 #d9d9d9 1 i} {checkbox checkbox16 {48 345 156 360} {} colors {} {} flat #00b600 #dfb2df 1 f} {radio radio17 {207 297 330 315} {} {red , rosu , rouge} color red flat #9c0000 #d9d9d9 1 n} {radio radio18 {207 321 324 333} {} {green , verde , vert} color green flat #009000 #d9d9d9 1 n} {radio radio19 {207 345 327 363} {} {blue , albastru, bleu} color blue flat #000000 #d9d9d9 1 n} {label selcolor {210 369 345 384} {} {} color {} flat #000000 #d9d9d9 1 n} {button button21 {285 258 363 285} {destroy .full} Exit {} {} raised #7c0000 #dfdbb8 1 b}
|
||||
Phone book pb 28 {FS {}} 444x307+284+246 {label label1 {33 10 68 28} {} Name {} label1 flat #000000 #d9d9d9 1 n} {entry name_entry {87 9 227 27} {} entry2 DataSet(.pb.qs,name) name_entry sunken #000000 #fefefe 1 n} {label label3 {33 37 73 52} {} Phone {} label3 flat #000000 #d9d9d9 1 n} {entry entry4 {87 36 195 54} {} entry4 DataSet(.pb.qs,phone_nr) entry4 sunken #000000 #fefefe 1 n} {label label5 {33 64 78 82} {} City {} label5 flat #000000 #d9d9d9 1 n} {entry entry6 {87 63 195 81} {} entry6 DataSet(.pb.qs,city) entry6 sunken #000000 #fefefe 1 n} {query qs {3 6 33 33} {} query7 {} qs flat {} {} 1 n} {button button8 {174 177 246 203} {namespace eval DataControl(.pb.qs) {\
|
||||
\ setSQL "select oid,* from phonebook where name ~* '$what' order by name"\
|
||||
\ open\
|
||||
\ set nrecs [getRowCount]\
|
||||
\ updateDataSet\
|
||||
\ fill .pb.allnames name\
|
||||
\ bind .pb.allnames <ButtonRelease-1> {\
|
||||
\ set ancr [.pb.allnames curselection]\
|
||||
\ if {$ancr!=""} {\
|
||||
\ \ DataControl(.pb.qs)::moveTo $ancr\
|
||||
\ \ DataControl(.pb.qs)::updateDataSet\
|
||||
\ }\
|
||||
\ }\
|
||||
}} {Start search} {} button8 raised #000000 #d9d9d9 1 n} {button button9 {363 276 433 300} {DataControl(.pb.qs)::close\
|
||||
DataControl(.pb.qs)::clearDataSet\
|
||||
set nrecs {}\
|
||||
set what {}\
|
||||
destroy .pb\
|
||||
} Exit {} button9 raised #000000 #d9d9d9 2 n} {button button10 {291 237 313 257} {namespace eval DataControl(.pb.qs) {\
|
||||
\ moveFirst\
|
||||
\ updateDataSet\
|
||||
}\
|
||||
} |< {} button10 ridge #000092 #d9d9d9 2 n} {button button11 {324 237 346 257} {namespace eval DataControl(.pb.qs) {\
|
||||
\ movePrevious\
|
||||
\ updateDataSet\
|
||||
}\
|
||||
} << {} button11 ridge #000000 #d9d9d9 2 n} {button button12 {348 237 370 257} {namespace eval DataControl(.pb.qs) {\
|
||||
\ moveNext\
|
||||
\ updateDataSet\
|
||||
}} >> {} button12 ridge #000000 #d9d9d9 2 n} {button button13 {381 237 403 257} {namespace eval DataControl(.pb.qs) {\
|
||||
\ moveLast\
|
||||
\ updateDataSet\
|
||||
}\
|
||||
} >| {} button13 ridge #000088 #d9d9d9 2 n} {checkbox checkbox14 {33 87 126 105} {} {Is it a company ?} DataSet(.pb.qs,company) checkbox14 flat #000000 #d9d9d9 1 n} {radio usa {63 108 201 120} {} U.S.A. DataSet(.pb.qs,continent) usa flat #000000 #d9d9d9 1 n} {radio europe {63 126 204 141} {} Europe DataSet(.pb.qs,continent) europe flat #000000 #d9d9d9 1 n} {radio africa {63 144 210 159} {} Africa DataSet(.pb.qs,continent) africa flat #000000 #d9d9d9 1 n} {entry entry18 {129 180 169 198} {} entry18 what entry18 sunken #000000 #fefefe 1 n} {label label19 {108 219 188 234} {} {records found} {} label19 flat #000000 #d9d9d9 1 n} {label label20 {90 219 105 234} {} { } nrecs label20 flat #000000 #d9d9d9 1 n} {label label21 {3 252 33 267} {} OID= {} label21 flat #000000 #d9d9d9 1 n} {label label22 {39 252 87 267} {} { } pbqs(oid) label22 flat #000000 #d9d9d9 1 n} {button button23 {9 276 79 300} {set oid {}\
|
||||
catch {set oid $DataSet(.pb.qs,oid)}\
|
||||
if {[string trim $oid]!=""} {\
|
||||
sql_exec noquiet "update phonebook set name='$DataSet(.pb.qs,name)', phone_nr='$DataSet(.pb.qs,phone_nr)',city='$DataSet(.pb.qs,city)',company='$DataSet(.pb.qs,company)',continent='$DataSet(.pb.qs,continent)' where oid=$oid"\
|
||||
} else {\
|
||||
tk_messageBox -title Error -message "No record is displayed!"\
|
||||
}\
|
||||
\
|
||||
} Update {} button23 raised #000000 #d9d9d9 1 n} {button button24 {210 276 280 300} {set thisname $DataSet(.pb.qs,name)\
|
||||
if {[string trim $thisname] != ""} {\
|
||||
\ sql_exec noquiet "insert into phonebook values (\
|
||||
\ \ '$DataSet(.pb.qs,name)',\
|
||||
\ \ '$DataSet(.pb.qs,phone_nr)',\
|
||||
\ \ '$DataSet(.pb.qs,city)',\
|
||||
\ \ '$DataSet(.pb.qs,company)',\
|
||||
\ \ '$DataSet(.pb.qs,continent)'\
|
||||
\ )"\
|
||||
\ tk_messageBox -title Information -message "A new record has been added!"\
|
||||
} else {\
|
||||
\ tk_messageBox -title Error -message "This one doesn't have a name?"\
|
||||
}\
|
||||
\
|
||||
} {Add record} {} button24 raised #000000 #d9d9d9 1 n} {button button25 {141 276 204 300} {DataControl(.pb.qs)::clearDataSet\
|
||||
# clearcontrols stillinitialise\
|
||||
# incorectly booleans controls to {}\
|
||||
# so I force it to 'f' (false)\
|
||||
set DataSet(.pb.qs,company) f\
|
||||
focus .pb.name_entry} {Clear all} {} button25 raised #000000 #d9d9d9 1 n} {listbox allnames {249 6 435 231} {} listbox26 {} allnames sunken #000000 #fefefe 1 n} {label label27 {33 252 90 267} {} {} DataSet(.pb.qs,oid) label27 flat #000000 #d9d9d9 1 n} {label label28 {3 182 128 197} {} {Find name containing} {} {} flat #000000 #d9d9d9 1 n}
|
||||
\.
|
||||
COPY "pga_scripts" FROM stdin;
|
||||
How are forms keeped inside ? Tables::open pga_forms\
|
||||
\
|
||||
\
|
||||
\
|
||||
|
||||
Opening a table with filters Tables::open phonebook "name ~* 'e'" "name desc"\
|
||||
\
|
||||
\
|
||||
|
||||
Autoexec Mainlib::tab_click Forms\
|
||||
Forms::open {Full featured form}\
|
||||
\
|
||||
\
|
||||
|
||||
\.
|
||||
COPY "pga_reports" FROM stdin;
|
||||
My phone book phonebook set PgAcVar(report,tablename) "phonebook" ; set PgAcVar(report,y_rpthdr) 21 ; set PgAcVar(report,y_pghdr) 47 ; set PgAcVar(report,y_detail) 66 ; set PgAcVar(report,y_pgfoo) 96 ; set PgAcVar(report,y_rptfoo) 126 ; .pgaw:ReportBuilder.c create text 10 35 -font -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* -anchor nw -text {name} -tags {t_l mov ro} ; .pgaw:ReportBuilder.c create text 10 52 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -anchor nw -text {name} -tags {f-name t_f rg_detail mov ro} ; .pgaw:ReportBuilder.c create text 141 36 -font -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* -anchor nw -text {city} -tags {t_l mov ro} ; .pgaw:ReportBuilder.c create text 141 51 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -anchor nw -text {city} -tags {f-city t_f rg_detail mov ro} ; .pgaw:ReportBuilder.c create text 231 35 -font -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* -anchor nw -text {phone_nr} -tags {t_l mov ro} ; .pgaw:ReportBuilder.c create text 231 51 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -anchor nw -text {phone_nr} -tags {f-phone_nr t_f rg_detail mov ro} \N \N
|
||||
\.
|
||||
COPY "phonebook" FROM stdin;
|
||||
FIAT 623463445 t europe
|
||||
Gelu Voican 01-32234 Bucuresti f europe
|
||||
Radu Vasile 01-5523423 Bucuresti f europe
|
||||
MUGADUMBU SRL +92 534662634 Cairo t africa
|
||||
Jimmy Page 66323452 f europe
|
||||
IBM 623346234 \N t usa
|
||||
John Doe +44 35 2993825 Washington f usa
|
||||
Bill Clinton +44 35 9283845 New York f usa
|
||||
Monica Levintchi +44 38 5234526 Dallas f usa
|
||||
Bill Gates +42 64 4523454 Los Angeles f usa
|
||||
COMPAQ 623462345 \N t usa
|
||||
SUN 784563253 \N t usa
|
||||
DIGITAL 922644516 \N t usa
|
||||
Frank Zappa 6734567 Montreal f usa
|
||||
Constantin Teodorescu +40 39 611820 Braila f europe
|
||||
Ngbendu Wazabanga 34577345 f africa
|
||||
Mugabe Kandalam 7635745 f africa
|
||||
Vasile Lupu 52345623 Bucuresti f europe
|
||||
Gica Farafrica +42 64 4523454 Los Angeles f usa
|
||||
Victor Ciorbea 634567 Bucuresti f europe
|
||||
\.
|
||||
COPY "pga_layout" FROM stdin;
|
||||
pga_forms 2 formname formsource 82 713
|
||||
Usaisti 5 name phone_nr city company continent 150 150 150 150 150
|
||||
q1 5 name phone_nr city company continent 150 150 150 150 150
|
||||
view_saved_from_that_query 5 name phone_nr city company continent 150 150 150 150 150
|
||||
phonebook 5 name phone_nr city company continent 150 105 80 66 104
|
||||
Query that can be saved as view 5 name phone_nr city company continent 150 150 150 150 150
|
||||
cities 3 id name prefix 150 150 150
|
||||
\.
|
||||
COPY "pga_schema" FROM stdin;
|
||||
Simple schema cities 10 10 phonebook 201.0 84.0 {cities name phonebook city}
|
||||
\.
|
||||
COPY "cities" FROM stdin;
|
||||
3 Braila 4039
|
||||
4 Galati 4036
|
||||
5 Dallas 5362
|
||||
6 Cairo 9352
|
||||
1 Bucuresti 4013
|
||||
7 Montreal 5325
|
||||
\.
|
||||
CREATE UNIQUE INDEX "cities_id_key" on "cities" using btree ( "id" "int4_ops" );
|
After Width: | Height: | Size: 20 KiB |
|
@ -0,0 +1,203 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#FEFEDF" link="#0000EF" vlink="#51188E" alink="#FF0000">
|
||||
|
||||
<h1>
|
||||
FORMS</h1>
|
||||
|
||||
<hr WIDTH="100%">
|
||||
<p>This version (0.97) of PgAccess has changed the form API : variable
|
||||
handling, query results interface and control bindings naming convention.
|
||||
Please read it carefully, download the database demo and practice a while
|
||||
before trying to design your own forms.
|
||||
<p>For the moment, it has only some basic widgets : labels, entries, buttons
|
||||
, listboxes , checkboxes and radiobuttons.
|
||||
<p>Also there is a pseudo data control widget that allows you yo have access
|
||||
to a query results.
|
||||
<p><b>How do you generate widgets :</b>
|
||||
<ol>
|
||||
<li>
|
||||
select a widget from the toolbox by clicking the appropriate radiobutton</li>
|
||||
|
||||
<li>
|
||||
move to the canvas , point with the mouse at the desired location and click
|
||||
the mouse button to begin</li>
|
||||
|
||||
<li>
|
||||
keeping the mouse-button pressed move the mouse in order to draw a rectangle
|
||||
that will hold the widget</li>
|
||||
|
||||
<li>
|
||||
release the mouse-button</li>
|
||||
</ol>
|
||||
In the rectangle that you have designed it will appear the selected object.
|
||||
<br>Move now to the attribute window to change some of its properties.
|
||||
<p>Renaming, resizing items are possible (for the moment) only by modifying
|
||||
appropriate parameters in attribute window. You <b>must </b>press Enter
|
||||
in the edit field after changing a value in order to be accepted.
|
||||
<p>You can also move items by dragging them or delete them by pressing
|
||||
Del key after selecting them.
|
||||
<p>In attribute window, there are some fields named <b><tt><font size=+1>Command
|
||||
</font></tt></b>and
|
||||
<b><tt><font size=+1>Variable</font></tt></b>.
|
||||
<p>The field <b><tt><font size=+1>Command </font></tt></b>have meaning
|
||||
only for Button widgets and holds the command that will be invoked when
|
||||
the button is pressed.
|
||||
<p> The field <b><tt><font size=+1>Variable </font></tt></b>have
|
||||
meaning only for EditField , Label widgets , checkboxes and radiobuttons
|
||||
and it is the name of the global variable that will hold the value for
|
||||
that widget. For checkboxes the values are <b>t</b> and <b>f</b> (from
|
||||
true and false) in order to simplify binding to logical data fields (PgAccess
|
||||
0.82 used 0 and 1).
|
||||
<p> For radiobuttons, it is usual to assign the same
|
||||
variable to the same radiobuttons within the same group. That variable
|
||||
will contain the name of the widget of the radiobutton that has been pressed.
|
||||
Let's presume that you have entered 3 radiobuttons named red, green and
|
||||
blue, all of them having the same variable named color. If you will press
|
||||
them, they will assign their names to global variable.
|
||||
<p> In order to make a simple test, put an entry field
|
||||
and set it's variable to <b>v1</b> and a button who's command is "set v1
|
||||
whisky". Press the button "Test form" and click on the button. In that
|
||||
entry should appear whisky.
|
||||
<br>Another test is defining in Script module a script called "My first
|
||||
script" having the following commands:
|
||||
<br><tt><font size=+1>tk_messageBox -title Warning -message "This is my
|
||||
first message!"</font></tt>
|
||||
<br>and then define a button who's command is <b><tt><font size=+1>execute_script
|
||||
"My first script"</font></tt></b>.
|
||||
<br>
|
||||
<h2>
|
||||
Database manipulation</h2>
|
||||
Let's presume that our form have the internal name <b><tt>mf </tt></b>(<b>m</b>y
|
||||
<b>f</b>orm). Don't forget that the Tk window names could not start with
|
||||
an uppercase letter.
|
||||
<br>The window will be referred inside the Tcl/Tk source as <b><tt>.mf</tt></b>
|
||||
<br>If you want to close the form in run-time you have to issue the command
|
||||
<b><tt>destroy
|
||||
.mf</tt></b>
|
||||
<p>Also, any widget created inside this window (form) will have the name
|
||||
prefixed by <b><tt>.mf ,</tt></b>so we will have <b><tt>.mf.button1</tt></b>
|
||||
or <b><tt>.mf.listbox1</tt></b> .
|
||||
<p>We can name the data control widget <b><tt>dc</tt></b> for example.
|
||||
The fully qualified name for that "virtual widget" will be <b><tt>.mf.dc</tt></b>
|
||||
then. A new namespace called <b><tt>DataControl(.mf.dc)</tt></b> will be
|
||||
automatically defined.
|
||||
<br>The <b><tt>Command </tt></b>property of the data control widget must
|
||||
contain the SQL command that will be executed.
|
||||
<br>When the form will be in run-time, automatically you will have access
|
||||
to the following procedures and functions from the namespace:
|
||||
<p><b><tt>open</tt></b> - opens the connection and execute the query (returns
|
||||
nothing)
|
||||
<br><b><tt>setSQL newsql</tt></b> - set the command query that will be
|
||||
executed at the next <b><tt>open</tt></b>
|
||||
<br><b><tt>getRowCount</tt></b> - returns the number of records of the
|
||||
result set
|
||||
<br><b><tt>getRowIndex </tt></b>- returns the current record number inside
|
||||
the result set
|
||||
<br><b><tt>getFieldList</tt></b> - returns a Tcl list containing the fields
|
||||
names from the current result set
|
||||
<br><b><tt>moveFirst</tt></b> - move the cursor to the first record in
|
||||
the recordset
|
||||
<br><b><tt>moveLast</tt></b><tt> , <b>moveNext</b> , <b>movePrevious</b></tt>-
|
||||
moves the cursor there
|
||||
<br><b><tt>moveTo newrecno</tt></b> - move the cursor to that new record
|
||||
number (first is 0)
|
||||
<br><b><tt>updateDataSet</tt></b> - update the variables inside the designed
|
||||
form that have a particular name (I'll explain later)
|
||||
<br><b><tt>clearDataSet</tt></b> - clear the associated DataSet variables
|
||||
<br><tt><b>fill listbox field</b> </tt>- fill the named listbox (whole
|
||||
widget name as <b><tt>.mf.listbox1</tt></b>) with the all the values of
|
||||
that field from the current result set
|
||||
<br><b><tt>close</tt></b> - close the result set (<b><font color="#FF0000">if
|
||||
you don't close it, you will loose some memory</font></b>)
|
||||
<p>These procedures and functions should be called in the normal Tcl namespace
|
||||
mode as in the following example:
|
||||
<p><tt>DataControl(.mf.dc)::setSQL "select * from phonebook"</tt>
|
||||
<br><tt>DataControl(.mf.dc)::open</tt>
|
||||
<br><tt>set nrecs [DataControl(.mf.dc)::getRowCount]</tt>
|
||||
<p>If you complaint about writting to many DataControl(...) you can include
|
||||
many commands into a single namespace eval as in the following example
|
||||
:
|
||||
<p><tt>namespace eval DataControl(.mf.dc) {</tt>
|
||||
<br><tt> setSQL "select * from phonebook"</tt>
|
||||
<br><tt> open</tt>
|
||||
<br><tt> set nrecs [getRowCount]</tt>
|
||||
<br><tt> moveLast</tt>
|
||||
<br><tt> updateDataSet</tt>
|
||||
<br><tt>}</tt>
|
||||
<p>It's no need to close a query-result set if you want to assign it a
|
||||
new SQL command and open it again. That will be done automatically releasing
|
||||
the memory used for the last result set.
|
||||
<br>Opening a new <b>DataControl</b> will automatically position the current
|
||||
row index of the result set on the first row (index 0) and will define
|
||||
a new global associative array named <b>DataSet</b> that will hold data
|
||||
from the current row. The key into that array will be the fully qualified
|
||||
name of the data control widget followed by a comma and the name of every
|
||||
field in the selected rows.
|
||||
<p><i>Example:</i>
|
||||
<br><tt>DataSet(.mf.dc,name)</tt>
|
||||
<br><tt>DataSet(.mf.dc,city)</tt>
|
||||
<p>If you want to bound some controls to the fields of the recordset, you
|
||||
will have to name their associate variable like that :
|
||||
<p><b><tt>DataSet(.mf.dc,salary)</tt></b> to get the "salary" field , or
|
||||
<b><tt>DataSet(.mf.dc,name)</tt></b> to get the "name" field. Using the
|
||||
data control procedures <b><tt>DataControl(.mf.dc)::moveNext</tt></b> or
|
||||
movePrevious will automatically update the <b><tt>DataSet(.mf.dc,...)</tt></b>
|
||||
array so the database information from entries in the form will be refreshed.
|
||||
<br>
|
||||
<p>Here it is a dumped <b><a href="formdemo.sql">sample database</a></b>
|
||||
that contains a demo database. What should you do ?
|
||||
<br>Shift-click the above URL in order to download that tiny file (4 Kb).
|
||||
Create a empty database and <b><tt>psql yourdatabase <formdemo.sql</tt></b>
|
||||
<p>You should find a single table called "phonebook" a form called "Phone
|
||||
book" and another "A simple demo form".
|
||||
<p>First of all enter and view the phonebook table in table view. Note
|
||||
the fields and their values.
|
||||
<br>Open the "Phone book" form and enter a letter (a, e or i) in the field
|
||||
to the left of "Find" button then press Find. It's fine to enter one letter
|
||||
in order to get more records in query result. You will get information
|
||||
about the number of records selected, in the listbox you will see all the
|
||||
values of field "name" from the current data set. Use buttons to move to
|
||||
first, next, previous or last record within the record set.
|
||||
<p>In order to add a new record, press the "New" button in order to get
|
||||
new, clean entries. Fill them with your data and press "Add new" button.
|
||||
A new phonebook record will be added. Also, if you want to update a record,
|
||||
change it's values in the displayed fields after finding it and press "Update"
|
||||
button. The values will be updated in the database BUT NOT IN THE CURRENT
|
||||
QUERY RESULT . If you want to see them modified, make a new query trying
|
||||
to find it again.
|
||||
<p><font color="#000080">Before using the results from a query you should
|
||||
know that the information that has been retrieved could be found only in
|
||||
your computer client memory. It has <b>no live connection</b> to the data
|
||||
from the database. That's why it isn't possible to develop a simple update
|
||||
function as interface to that query-result widget. More than that : a query
|
||||
result could be obtained from a SQL command that return a non-updatable
|
||||
data set !!! For example fields gathered from multiple tables or summary
|
||||
fields. It isn't just simple to make an automatic update procedure. The
|
||||
programmer must know how to make the update or the append procedure, sometimes
|
||||
using key fields to point to the desired record or an OID. There are examples
|
||||
in the demo database in "Phone book" form. It may be possible that in the
|
||||
future, I will develop another pseudo-widget describing a table. It would
|
||||
be more simple than to implement an update or append or even a delete procedure.</font>
|
||||
<p>There is in the demo database also another simple form called "A simple
|
||||
demo form". It will show you how to handle variables from checkboxes, radiobuttons,
|
||||
how to use listboxes, open another forms and so on. I think they will help
|
||||
you.
|
||||
<p>In order to avoid naming user defined forms with a particular
|
||||
name of another PgAccess form, I would recommend naming them as udf0, udf1
|
||||
(user defined form 0 , 1 )
|
||||
<p>
|
||||
<hr WIDTH="25%">
|
||||
<p>Please feel free to send me your opinion at <b>teo@flex.ro</b> on forms
|
||||
designing and usage.
|
||||
<p><b><font size=+1>KEEP IN MIND !
|
||||
THE FORM API MAY CHANGE IN ORDER TO BE MORE SIMPLE AND BETTER!</font></b>
|
||||
<br><b><font size=+1>SEND ME YOUR WISHES, YOUR IDEAS, YOUR OPINIONS !</font></b>
|
||||
<br><b><font size=+1>ALSO ... DON'T BLAME ME IF YOU WILL HAVE TO RE-DESIGN
|
||||
YOUR OLD FORMS DUE TO SOME INCOMPATIBILITIES WITH NEWER PGACCESS VERSIONS.</font></b>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 6.9 KiB |
|
@ -0,0 +1,11 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>PgAccess</TITLE>
|
||||
|
||||
<FRAMESET COLS="200,*" border=0 framespacing=0 frameborder=no>
|
||||
<FRAME NAME="left" scrolling="none" src="contents.html">
|
||||
<FRAME NAME="right" scrolling="nonw" src="main.html">
|
||||
</FRAMESET>
|
||||
|
||||
</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>
|
After Width: | Height: | Size: 789 B |
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE></TITLE>
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]">
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000">
|
||||
|
||||
<P>The mailing list for PgAccess is : <B><TT>pgsql-interfaces@postgresql.org</TT></B></P>
|
||||
|
||||
<P>If you have some questions regarding PgAccess you should mail to this
|
||||
address. I will also answer to messages addresed directly to me but it
|
||||
would be better to post your messages here because it might be possible
|
||||
to get an answer quickly from another user of PgAccess.</P>
|
||||
|
||||
<P>
|
||||
<HR WIDTH="100%"></P>
|
||||
|
||||
<P>To subscribe please send a mail message to :</P>
|
||||
|
||||
<P> <B><TT><FONT SIZE=+1>pgsql-interfaces-request@postgresql.org
|
||||
</FONT></TT></B> </P>
|
||||
|
||||
<P>having a single line in the body message : <B><TT><FONT SIZE=+1>subscribe</FONT></TT></B></P>
|
||||
|
||||
<P>In a couple of minutes , if everything is ok, you must receive something
|
||||
like that :</P>
|
||||
|
||||
<P>
|
||||
<HR WIDTH="100%"></P>
|
||||
|
||||
<P><TT>Welcome to the pgsql-interfaces mailing list!</TT></P>
|
||||
|
||||
<P><TT>Please save this message for future reference. Thank you.</TT></P>
|
||||
|
||||
<P><TT>If you ever want to remove yourself from this mailing list, you
|
||||
can send mail to <Majordomo@hub.org> with the following command in
|
||||
the body of your email message:</TT></P>
|
||||
|
||||
<P><TT>unsubscribe pgsql-interfaces yourname@yourdomain</TT></P>
|
||||
<TT></TT>
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,34 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.12 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h1>
|
||||
PgAccess
|
||||
<hr WIDTH="100%"></h1>
|
||||
A free graphical database management tool for <a href="http://www.postgresql.org">PostgreSQL</a>.
|
||||
PgAccess has been written by <a href="mailto:teo@flex.ro">Constantin Teodorescu</a>
|
||||
using Visual Tcl, the best tool for developing Tcl/Tk applications I've
|
||||
ever seen.
|
||||
<p><b>Last version</b>
|
||||
<br>Last stable version is 0.98 , released on 29 August 1999. Read <a href="whatsnew.html">what's
|
||||
new</a> in 0.98.
|
||||
<p><b>Portability issues</b>
|
||||
<br>PgAccess is available for every platform where PostgreSQL was ported
|
||||
and where a Tcl/Tk package is available. PgAccess has been reported running
|
||||
on :
|
||||
<br>- Linux
|
||||
<br>- FreeBSD
|
||||
<br>- Solaris
|
||||
<br>- HPUX
|
||||
<br>- Irix
|
||||
<br>- Windows 95,98,NT
|
||||
<p>PgAccess needs Tcl/Tk versions 8.0.x and higher thought PgAccess. For
|
||||
win32 platforms there are some special DLL's that have to be downloaded
|
||||
and installed, more information <a href="win32.html">here</a>.
|
||||
<p>PgAccess is protected by the following <a href="copyright.html">copyright</a>.
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,143 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
<title>PgAccess - a Tcl/Tk PostgreSQL interface</title>
|
||||
</head>
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<h1>
|
||||
PgAccess - a free database management tool for <a href="http://www.postgreSQL.org">PostgreSQL</a></h1>
|
||||
|
||||
<hr>
|
||||
<li>
|
||||
Download the last version of PgAccess <a href="pgaccess-0.96.tar.gz">(press
|
||||
shift and click this link) (tar.gz file)</a> or <a href="pgaccess.zip">this
|
||||
one (zip file for Windows)</a></li>
|
||||
|
||||
<center>
|
||||
<p><br>Latest stable version of PgAccess is 0.97 , released 16 August 1999
|
||||
!
|
||||
<p><font size=+2>PgAccess 0.93 and higher will not work from the beginning
|
||||
with PostgreSQL 6.3.x !!</font>
|
||||
<br><font size=+2>Read <a href="pg93patch.html">here</a> how to apply a
|
||||
simple patch in order to make it work !</font></center>
|
||||
<b><font color="#000000"><font size=+2></font></font></b>
|
||||
<center><table BORDER=2 NOSAVE >
|
||||
<tr NOSAVE>
|
||||
<td NOSAVE><b><font color="#FF0000"><font size=+2>NEW</font></font></b></td>
|
||||
|
||||
<td NOSAVE><b><font color="#000000"><font size=+2>International version
|
||||
(english, french, italian, romanian)</font></font></b></td>
|
||||
</tr>
|
||||
|
||||
<tr NOSAVE>
|
||||
<td NOSAVE><b><font color="#FF0000"><font size=+2>NEW</font></font></b></td>
|
||||
|
||||
<td><b><font size=+2>Context sensitive Help</font></b></td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<center>
|
||||
<p>Precompiled libpgtcl and libpq binaries and dll's for i386 are <a href="ftp://ftp.flex.ro/pub/pgaccess">here
|
||||
</a>!!!</center>
|
||||
|
||||
<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>
|
||||
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 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>.
|
||||
<p><b>Tables</b>
|
||||
<br>- opening multiple tables for viewing, max. n 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, plpgsql and pgtcl languages
|
||||
<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><b>Users</b>
|
||||
<br>- define and modify user information
|
||||
<p>Here is <a href="pga-rad.html">a special section concerning forms and
|
||||
scripts</a> .
|
||||
<p>This program is protected by the following <a href="copyright.html">copyright</a>
|
||||
<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>
|
||||
<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>.
|
||||
<p>
|
||||
<hr>
|
||||
<h1>
|
||||
More information about libpgtcl - downloads</h1>
|
||||
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.
|
||||
<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.
|
||||
<p> If you have installed RedHat 5.x, you should
|
||||
get the last distribution kit of PostgreSQL and compile it from scratch.
|
||||
RedHat 5.x 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> PostgreSQL 6.4 release has a minor bug. I does not
|
||||
include by default the crypt lib when compiling libpgtcl. So, you will
|
||||
need to manually add a -lcrypt to SHLIB line in Makefile in src/interfaces/libpgtcl
|
||||
and then make clean and make again. The new libpgtcl.so library is properly
|
||||
configured to run pgaccess.
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,25 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; I; Linux 2.0.36 i586) [Netscape]">
|
||||
</head>
|
||||
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#FF0000" alink="#000088">
|
||||
|
||||
<h1>
|
||||
PgAccess 0.93 patch to make it work with PostgreSQL 6.3.x
|
||||
<hr WIDTH="100%"></h1>
|
||||
|
||||
<p><br>PgAccess 0.93 is working fine with PostgreSQL 6.4.x due to some
|
||||
changes in libpgtcl !
|
||||
<p>There is a small patch that you have to make in order to make it work
|
||||
with 6.3.x !
|
||||
<p>Replace in procedure <tt>wpg_exec</tt> the following line:
|
||||
<p><tt>set pgsql(errmsg) [pg_result $pgsql(res) -error]</tt>
|
||||
<p>with this one :
|
||||
<p><tt>set pgsql(errmsg) "NO ERROR INFORMATION SUPPLIED"</tt>
|
||||
<p>And it will work fine! In some error cases, you will not get the appropriate
|
||||
error message from libpgtcl.
|
||||
<p> <a href="index.html">Back</a>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<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]">
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000">
|
||||
|
||||
<H1>
|
||||
PgAccess - Scripts and Forms
|
||||
<HR WIDTH="100%"></H1>
|
||||
Beginning with 0.70 version, I have introduced in PgAccess two new modules
|
||||
for operating with scripts and forms.
|
||||
|
||||
<P> This would give to PgAccess the power of creating application
|
||||
directly into PgAccess, defining new modules, procedures, forms and possibly
|
||||
making it a rapid development tool for PostgreSQL. The "scripts" and "forms"
|
||||
modules are using two new tables called pga_forms and pga_scripts. PgAccess
|
||||
take care of creating them if user is opening a new database and grant
|
||||
ALL permissions on them to PUBLIC.
|
||||
<BR>
|
||||
<BR> Of course, when Designing a script, a simple text editor
|
||||
is opened and text is saved as is in pga_scripts table. When "designing"
|
||||
a form, a "form editor" that would be very similar with "Visual Tcl" is
|
||||
invoked.
|
||||
|
||||
<P> This mechanism and the extremely versatile scripting mode
|
||||
of Tcl/Tk would give PgAccess a great power for creating end user application
|
||||
using PostgreSQL. The most important thing is that the user could call
|
||||
procedures and functions that I have used for building up PgAccess !
|
||||
<H3>
|
||||
Forms</H3>
|
||||
Forms are used for creating windows and placing widgets inside
|
||||
it. When PgAccess interpret them, a new window appear, with buttons as
|
||||
defined that could call "user defined scripts", "user defined procedures"
|
||||
or "internal PgAccess procedures".
|
||||
<BR> Forms can hold all the widgets allowed in Tcl/Tk , buttons,
|
||||
check-boxes, radio-buttons, list-boxes, frames, canvases, etc. With these
|
||||
forms, you can control your application so PgAccess would become just a
|
||||
"shell", a startup point for you applications. See the <A HREF="forms.html">special
|
||||
section concerning forms.</A>
|
||||
<H3>
|
||||
Scripts</H3>
|
||||
Scripts are normal Tcl/Tk code that is interpreted by Tcl/Tk.
|
||||
You can define your own procedures inside a script called "Library" for
|
||||
example. You can call your procedures from within another script, from
|
||||
another procedure.
|
||||
<BR> The most important thing is that you have total access
|
||||
to the PgAccess core of functions and procedures used by me in building
|
||||
PgAccess as an application. Just write <B><TT><FONT COLOR="#000080">open_table
|
||||
"Your sample table"</FONT></TT></B> and you'll see the result.
|
||||
<BR> If you are writing a script called "Autoexec" then it
|
||||
will be executed every time the database is opened. You can put inside
|
||||
different commands that you want to be executed such as : running scripts
|
||||
that would define your own procedures such as <B><TT><FONT COLOR="#000080">execute_script
|
||||
"My own procedure library"</FONT></TT></B> or open a form with <B><TT><FONT COLOR="#000080">open_form
|
||||
"Main window with menu buttons"</FONT></TT></B> , and so on.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="100%">
|
||||
<BR>Remember : I'm waiting your messages at <A HREF="mailto:teo@flex.ro">teo@flex.ro</A>
|
||||
|
||||
<P>
|
||||
<HR WIDTH="50%">
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,45 @@
|
|||
<html>
|
||||
|
||||
<title> Visual Query Builder in Tcl/Tk </title>
|
||||
<body bgcolor=white>
|
||||
<h1> Visual Query Builder</h1>
|
||||
<hr>
|
||||
This visual query builder is included in <a href='http://www.flex.ro/pgaccess'>
|
||||
PgAccess</a>, a visual interface to
|
||||
<a href='http://www.postgreSQL.org'> PostgreSQL</a> written entirely in
|
||||
vTcl , (Visual Tcl).
|
||||
|
||||
|
||||
<p align="center">
|
||||
|
||||
<embed src="qbtclet.tcl" width=590 height=485>
|
||||
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
Visual Query Designer demo<br>
|
||||
Click <a href='qbtclet.tar.gz'>here</a> to download the source </a>
|
||||
created by Constantin Teodorescu with vTcl (visual Tcl), teo@flex.ro
|
||||
<hr>
|
||||
Facitilies<br>
|
||||
- drag and drop selection of fields<br>
|
||||
- drag and drop fields from a table to another do create links<br>
|
||||
- move table position by dragging<br>
|
||||
- point and click any link or table then press delete to delete them<br>
|
||||
- modify sort order by clicking on (unsorted)<br>
|
||||
- enter filter conditions as criteria (>2000 , ='item')<br>
|
||||
- easy panning of table and result panels<br>
|
||||
- show SQL command<br>
|
||||
<br>
|
||||
If you want to use it for your database, modify ql_read_struct in order to read
|
||||
your table structure.
|
||||
<br>
|
||||
Feel free to use, modify or copy this software for non-commercial purposes.<br>
|
||||
In any other case, please contact me.
|
||||
<br>
|
||||
FLEX Consulting Braila, ROMANIA is able to deliver high end interfaces
|
||||
and any other commercial products written in Tcl/Tk just like that you have seen.
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,529 @@
|
|||
#################################
|
||||
# GLOBAL VARIABLES
|
||||
#
|
||||
global qlvar;
|
||||
global widget;
|
||||
|
||||
#################################
|
||||
# USER DEFINED PROCEDURES
|
||||
#
|
||||
proc init {argc argv} {
|
||||
global qlvar
|
||||
set qlvar(yoffs) 360
|
||||
set qlvar(xoffs) 50
|
||||
set qlvar(reswidth) 150
|
||||
}
|
||||
|
||||
init $argc $argv
|
||||
|
||||
proc main {argc argv} {
|
||||
|
||||
}
|
||||
|
||||
proc show_message {usrmsg} {
|
||||
global msg
|
||||
set msg $usrmsg
|
||||
after 2000 {set msg {}}
|
||||
}
|
||||
|
||||
proc ql_delete_object {} {
|
||||
global qlvar
|
||||
# Checking if there
|
||||
set obj [.c find withtag hili]
|
||||
if {$obj==""} return
|
||||
if {[ql_get_tag_info $obj link]=="s"} {
|
||||
# if {[tk_messageBox -title WARNING -icon question -message "Remove link ?" -type yesno -default no]=="no"} return
|
||||
show_message "Deleting the link from tables ..."
|
||||
set linkid [ql_get_tag_info $obj lkid]
|
||||
set qlvar(links) [lreplace $qlvar(links) $linkid $linkid]
|
||||
.c delete links
|
||||
ql_draw_links
|
||||
} else {
|
||||
set tablename [ql_get_tag_info $obj tab]
|
||||
if {$tablename==""} return
|
||||
# if {[tk_messageBox -title WARNING -icon question -message "Remove table $tablename from query ?" -type yesno -default no]=="no"} return
|
||||
show_message "Deleting table from query ..."
|
||||
for {set i [expr [llength $qlvar(restables)]-1]} {$i>=0} {incr i -1} {
|
||||
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]
|
||||
}
|
||||
}
|
||||
for {set i [expr [llength $qlvar(links)]-1]} {$i>=0} {incr i -1} {
|
||||
set thelink [lindex $qlvar(links) $i]
|
||||
if {($tablename==[lindex $thelink 0]) || ($tablename==[lindex $thelink 2])} {
|
||||
set qlvar(links) [lreplace $qlvar(links) $i $i]
|
||||
}
|
||||
}
|
||||
.c delete tab$tablename
|
||||
.c delete links
|
||||
ql_draw_links
|
||||
ql_draw_res_panel
|
||||
}
|
||||
}
|
||||
|
||||
proc ql_dragit {w x y} {
|
||||
global draginfo
|
||||
if {"$draginfo(obj)" != ""} {
|
||||
set dx [expr $x - $draginfo(x)]
|
||||
set dy [expr $y - $draginfo(y)]
|
||||
if {$draginfo(is_a_table)} {
|
||||
set taglist [.c gettags $draginfo(obj)]
|
||||
set tabletag [lindex $taglist [lsearch -regexp $taglist "^tab"]]
|
||||
$w move $tabletag $dx $dy
|
||||
ql_draw_links
|
||||
} else {
|
||||
$w move $draginfo(obj) $dx $dy
|
||||
}
|
||||
set draginfo(x) $x
|
||||
set draginfo(y) $y
|
||||
}
|
||||
}
|
||||
|
||||
proc ql_dragstart {w x y} {
|
||||
global draginfo
|
||||
catch {unset draginfo}
|
||||
set draginfo(obj) [$w find closest $x $y]
|
||||
if {[ql_get_tag_info $draginfo(obj) r]=="ect"} {
|
||||
# If it'a a rectangle, exit
|
||||
set draginfo(obj) {}
|
||||
return
|
||||
}
|
||||
. configure -cursor hand1
|
||||
.c raise $draginfo(obj)
|
||||
set draginfo(table) 0
|
||||
if {[ql_get_tag_info $draginfo(obj) table]=="header"} {
|
||||
set draginfo(is_a_table) 1
|
||||
.c itemconfigure [.c find withtag hili] -fill black
|
||||
.c dtag [.c find withtag hili] hili
|
||||
.c addtag hili withtag $draginfo(obj)
|
||||
.c itemconfigure hili -fill blue
|
||||
} else {
|
||||
set draginfo(is_a_table) 0
|
||||
}
|
||||
set draginfo(x) $x
|
||||
set draginfo(y) $y
|
||||
set draginfo(sx) $x
|
||||
set draginfo(sy) $y
|
||||
}
|
||||
|
||||
proc ql_dragstop {x y} {
|
||||
global draginfo qlvar
|
||||
. configure -cursor top_left_arrow
|
||||
set este {}
|
||||
catch {set este $draginfo(obj)}
|
||||
if {$este==""} return
|
||||
# Re-establish the normal paint order so
|
||||
# information won't be overlapped by table rectangles
|
||||
# or link linkes
|
||||
.c lower $draginfo(obj)
|
||||
.c lower rect
|
||||
.c lower links
|
||||
set qlvar(panstarted) 0
|
||||
if {$draginfo(is_a_table)} {
|
||||
set draginfo(obj) {}
|
||||
.c delete links
|
||||
ql_draw_links
|
||||
return
|
||||
}
|
||||
.c move $draginfo(obj) [expr $draginfo(sx)-$x] [expr $draginfo(sy)-$y]
|
||||
if {($y>$qlvar(yoffs)) && ($x>$qlvar(xoffs))} {
|
||||
# Drop position : inside the result panel
|
||||
# Compute the offset of the result panel due to panning
|
||||
set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)]
|
||||
set newfld [.c itemcget $draginfo(obj) -text]
|
||||
set tabtag [ql_get_tag_info $draginfo(obj) tab]
|
||||
set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))]
|
||||
set qlvar(resfields) [linsert $qlvar(resfields) $col $newfld]
|
||||
set qlvar(ressort) [linsert $qlvar(ressort) $col unsorted]
|
||||
set qlvar(rescriteria) [linsert $qlvar(rescriteria) $col {}]
|
||||
set qlvar(restables) [linsert $qlvar(restables) $col $tabtag]
|
||||
ql_draw_res_panel
|
||||
} else {
|
||||
# Drop position : in the table panel
|
||||
set droptarget [.c find overlapping $x $y $x $y]
|
||||
set targettable {}
|
||||
foreach item $droptarget {
|
||||
set targettable [ql_get_tag_info $item tab]
|
||||
set targetfield [ql_get_tag_info $item f-]
|
||||
if {($targettable!="") && ($targetfield!="")} {
|
||||
set droptarget $item
|
||||
break
|
||||
}
|
||||
}
|
||||
# check if target object isn't a rectangle
|
||||
if {[ql_get_tag_info $droptarget rec]=="t"} {set targettable {}}
|
||||
if {$targettable!=""} {
|
||||
# Target has a table
|
||||
# See about originate table
|
||||
set sourcetable [ql_get_tag_info $draginfo(obj) tab]
|
||||
if {$sourcetable!=""} {
|
||||
# Source has also a tab .. tag
|
||||
set sourcefield [ql_get_tag_info $draginfo(obj) f-]
|
||||
if {$sourcetable!=$targettable} {
|
||||
lappend qlvar(links) [list $sourcetable $sourcefield $targettable $targetfield $draginfo(obj) $droptarget]
|
||||
ql_draw_links
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# Erase information about onbject beeing dragged
|
||||
set draginfo(obj) {}
|
||||
}
|
||||
|
||||
proc ql_draw_links {} {
|
||||
global qlvar
|
||||
.c delete links
|
||||
set i 0
|
||||
foreach link $qlvar(links) {
|
||||
# Compute the source and destination right edge
|
||||
set sre [lindex [.c bbox tab[lindex $link 0]] 2]
|
||||
set dre [lindex [.c bbox tab[lindex $link 2]] 2]
|
||||
# Compute field bound boxes
|
||||
set sbbox [.c bbox [lindex $link 4]]
|
||||
set dbbox [.c bbox [lindex $link 5]]
|
||||
# Compute the auxiliary lines
|
||||
if {[lindex $sbbox 2] < [lindex $dbbox 0]} {
|
||||
# Source object is on the left of target object
|
||||
set x1 $sre
|
||||
set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2]
|
||||
.c create line $x1 $y1 [expr $x1+10] $y1 -tags [subst {links lkid$i}] -width 3
|
||||
set x2 [lindex $dbbox 0]
|
||||
set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2]
|
||||
.c create line [expr $x2-10] $y2 $x2 $y2 -tags {links} -width 3
|
||||
.c create line [expr $x1+10] $y1 [expr $x2-10] $y2 -tags [subst {links lkid$i}] -width 2
|
||||
} else {
|
||||
# source object is on the right of target object
|
||||
set x1 [lindex $sbbox 0]
|
||||
set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2]
|
||||
.c create line $x1 $y1 [expr $x1-10] $y1 -tags [subst {links lkid$i}] -width 3
|
||||
set x2 $dre
|
||||
set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2]
|
||||
.c create line $x2 $y2 [expr $x2+10] $y2 -width 3 -tags [subst {links lkid$i}]
|
||||
.c create line [expr $x1-10] $y1 [expr $x2+10] $y2 -tags [subst {links lkid$i}] -width 2
|
||||
}
|
||||
incr i
|
||||
}
|
||||
.c lower links
|
||||
.c bind links <Button-1> {ql_link_click %x %y}
|
||||
}
|
||||
|
||||
proc ql_draw_lizzard {} {
|
||||
global qlvar
|
||||
ql_read_struct
|
||||
.c delete all
|
||||
set posx 20
|
||||
for {set it 0} {$it<$qlvar(ntables)} {incr it} {
|
||||
ql_draw_table $it
|
||||
# set posy 10
|
||||
# set tablename $qlvar(tablename$it)
|
||||
# .c create text $posx $posy -text $tablename -anchor nw -tags [subst {tab$tablename f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*
|
||||
# incr posy 16
|
||||
# foreach fld $qlvar(tablestruct$it) {
|
||||
# .c create text $posx $posy -text $fld -anchor nw -tags [subst {f-$fld tab$tablename mov}] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
# incr posy 14
|
||||
# }
|
||||
# set reg [.c bbox tab$tablename]
|
||||
# .c create rectangle [lindex $reg 0] [lindex $reg 1] [lindex $reg 2] [lindex $reg 3] -fill #EEEEEE -tags [subst {rect tab$tablename}]
|
||||
# .c create line [lindex $reg 0] [expr [lindex $reg 1]+15] [lindex $reg 2] [expr [lindex $reg 1]+15] -tags [subst {rect tab$tablename}]
|
||||
# set posx [expr $posx+40+[lindex $reg 2]-[lindex $reg 0]]
|
||||
}
|
||||
.c lower rect
|
||||
.c create line 0 $qlvar(yoffs) 10000 $qlvar(yoffs) -width 3
|
||||
.c create rectangle 0 $qlvar(yoffs) 10000 5000 -fill #FFFFFF
|
||||
for {set i [expr 15+$qlvar(yoffs)]} {$i<500} {incr i 15} {
|
||||
.c create line $qlvar(xoffs) $i 10000 $i -fill #CCCCCC -tags {resgrid}
|
||||
}
|
||||
for {set i $qlvar(xoffs)} {$i<10000} {incr i $qlvar(reswidth)} {
|
||||
.c create line $i [expr 1+$qlvar(yoffs)] $i 10000 -fill #cccccc -tags {resgrid}
|
||||
}
|
||||
# Make a marker for result panel offset calculations (due to panning)
|
||||
.c create line $qlvar(xoffs) $qlvar(yoffs) $qlvar(xoffs) 500 -tags {resmarker resgrid}
|
||||
.c create rectangle 0 $qlvar(yoffs) $qlvar(xoffs) 5000 -fill #EEEEEE -tags {reshdr}
|
||||
.c create text 5 [expr 1+$qlvar(yoffs)] -text Field: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr}
|
||||
.c create text 5 [expr 16+$qlvar(yoffs)] -text Table: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr}
|
||||
.c create text 5 [expr 31+$qlvar(yoffs)] -text Sort: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr}
|
||||
.c create text 5 [expr 46+$qlvar(yoffs)] -text Criteria: -anchor nw -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags {reshdr}
|
||||
.c bind mov <Button-1> {ql_dragstart %W %x %y}
|
||||
.c bind mov <B1-Motion> {ql_dragit %W %x %y}
|
||||
bind . <ButtonRelease-1> {ql_dragstop %x %y}
|
||||
bind . <Button-1> {qlc_click %x %y %W}
|
||||
bind . <B1-Motion> {ql_pan %x %y}
|
||||
bind . <Key-Delete> {ql_delete_object}
|
||||
set qlvar(resfields) {}
|
||||
set qlvar(ressort) {}
|
||||
set qlvar(rescriteria) {}
|
||||
set qlvar(restables) {}
|
||||
set qlvar(critedit) 0
|
||||
set qlvar(links) {}
|
||||
set qlvar(linktodelete) {}
|
||||
}
|
||||
|
||||
proc ql_draw_res_panel {} {
|
||||
global qlvar
|
||||
# Compute the offset of the result panel due to panning
|
||||
set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)]
|
||||
.c delete resp
|
||||
for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} {
|
||||
.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 1+$qlvar(yoffs)] -text [lindex $qlvar(resfields) $i] -anchor nw -fill navy -tags {resf resp} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 16+$qlvar(yoffs)] -text [lindex $qlvar(restables) $i] -anchor nw -tags {resp rest} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr 31+$qlvar(yoffs)] -text [lindex $qlvar(ressort) $i] -anchor nw -tags {resp sort} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
if {[lindex $qlvar(rescriteria) $i]!=""} {
|
||||
.c create text [expr $resoffset+4+$qlvar(xoffs)+$i*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*0] -anchor nw -text [lindex $qlvar(rescriteria) $i] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags [subst {resp cr-c$i-r0}]
|
||||
}
|
||||
}
|
||||
.c raise reshdr
|
||||
.c bind sort <Button-1> {ql_swap_sort %W %x %y}
|
||||
}
|
||||
|
||||
proc ql_draw_table {it} {
|
||||
global qlvar
|
||||
|
||||
set posy 10
|
||||
set allbox [.c bbox rect]
|
||||
if {$allbox==""} {set posx 10} else {set posx [expr 20+[lindex $allbox 2]]}
|
||||
set tablename $qlvar(tablename$it)
|
||||
.c create text $posx $posy -text $tablename -anchor nw -tags [subst {tab$tablename f-oid mov tableheader}] -font -Adobe-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*
|
||||
incr posy 16
|
||||
foreach fld $qlvar(tablestruct$it) {
|
||||
.c create text $posx $posy -text $fld -anchor nw -tags [subst {f-$fld tab$tablename mov}] -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
incr posy 14
|
||||
}
|
||||
set reg [.c bbox tab$tablename]
|
||||
.c create rectangle [lindex $reg 0] [lindex $reg 1] [lindex $reg 2] [lindex $reg 3] -fill #EEEEEE -tags [subst {rect tab$tablename}]
|
||||
.c create line [lindex $reg 0] [expr [lindex $reg 1]+15] [lindex $reg 2] [expr [lindex $reg 1]+15] -tags [subst {rect tab$tablename}]
|
||||
}
|
||||
|
||||
proc ql_get_tag_info {obj prefix} {
|
||||
set taglist [.c gettags $obj]
|
||||
set tagpos [lsearch -regexp $taglist "^$prefix"]
|
||||
if {$tagpos==-1} {return ""}
|
||||
set thattag [lindex $taglist $tagpos]
|
||||
return [string range $thattag [string length $prefix] end]
|
||||
}
|
||||
|
||||
proc ql_link_click {x y} {
|
||||
global qlvar
|
||||
|
||||
set obj [.c find closest $x $y 1 links]
|
||||
if {[ql_get_tag_info $obj link]!="s"} return
|
||||
.c itemconfigure [.c find withtag hili] -fill black
|
||||
.c dtag [.c find withtag hili] hili
|
||||
.c addtag hili withtag $obj
|
||||
.c itemconfigure $obj -fill blue
|
||||
}
|
||||
|
||||
proc ql_pan {x y} {
|
||||
global qlvar
|
||||
set panstarted 0
|
||||
catch {set panstarted $qlvar(panstarted) }
|
||||
if {!$panstarted} return
|
||||
set dx [expr $x-$qlvar(panstartx)]
|
||||
set dy [expr $y-$qlvar(panstarty)]
|
||||
set qlvar(panstartx) $x
|
||||
set qlvar(panstarty) $y
|
||||
if {$qlvar(panobject)=="tables"} {
|
||||
.c move mov $dx $dy
|
||||
.c move links $dx $dy
|
||||
.c move rect $dx $dy
|
||||
} else {
|
||||
.c move resp $dx 0
|
||||
.c move resgrid $dx 0
|
||||
.c raise reshdr
|
||||
}
|
||||
}
|
||||
|
||||
proc ql_read_struct {} {
|
||||
global qlvar
|
||||
|
||||
set qlvar(ntables) 3
|
||||
set qlvar(tablename0) Facturi
|
||||
set qlvar(tablename1) Nommat
|
||||
set qlvar(tablename2) Incasari
|
||||
set qlvar(tablestruct0) [list factura client valoare tva]
|
||||
set qlvar(tablestruct1) [list cod denumire pret greutate procent_tva]
|
||||
set qlvar(tablestruct2) [list data valoare nrdoc referinta]
|
||||
}
|
||||
|
||||
proc ql_show_sql {} {
|
||||
global qlvar
|
||||
|
||||
set sqlcmd "select "
|
||||
for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} {
|
||||
if {$sqlcmd!="select "} {set sqlcmd "$sqlcmd, "}
|
||||
set sqlcmd "$sqlcmd[lindex $qlvar(restables) $i].[lindex $qlvar(resfields) $i]"
|
||||
}
|
||||
set tables {}
|
||||
for {set i 0} {$i<$qlvar(ntables)} {incr i} {
|
||||
lappend tables $qlvar(tablename$i)
|
||||
}
|
||||
set sqlcmd "$sqlcmd from [join $tables ,] "
|
||||
set sup1 {}
|
||||
if {[llength $qlvar(links)]>0} {
|
||||
set sup1 "where "
|
||||
foreach link $qlvar(links) {
|
||||
if {$sup1!="where "} {set sup1 "$sup1 and "}
|
||||
set sup1 "$sup1 ([lindex $link 0].[lindex $link 1]=[lindex $link 2].[lindex $link 3])"
|
||||
}
|
||||
}
|
||||
for {set i 0} {$i<[llength $qlvar(resfields)]} {incr i} {
|
||||
set crit [lindex $qlvar(rescriteria) $i]
|
||||
if {$crit!=""} {
|
||||
if {$sup1==""} {set sup1 "where "}
|
||||
if {[string range $sup1 0 4]=="where"} {set sup1 "$sup1 and "}
|
||||
set sup1 "$sup1 ([lindex $qlvar(restables) $i].[lindex $qlvar(resfields) $i]$crit) "
|
||||
}
|
||||
}
|
||||
set sqlcmd "$sqlcmd $sup1"
|
||||
set sup2 {}
|
||||
for {set i 0} {$i<[llength $qlvar(ressort)]} {incr i} {
|
||||
set how [lindex $qlvar(ressort) $i]
|
||||
if {$how!="unsorted"} {
|
||||
if {$how=="Ascending"} {set how asc} else {set how desc}
|
||||
if {$sup2==""} {set sup2 " order by "} else {set sup2 "$sup2,"}
|
||||
set sup2 "$sup2 [lindex $qlvar(resfields) $i] $how "
|
||||
}
|
||||
}
|
||||
set sqlcmd "$sqlcmd $sup2"
|
||||
set qlvar(sql) $sqlcmd
|
||||
#tk_messageBox -message $sqlcmd
|
||||
.c delete sqlpage
|
||||
.c create rectangle 0 0 2000 [expr $qlvar(yoffs)-1] -fill #ffffff -tags {sqlpage}
|
||||
.c create text 10 10 -text $sqlcmd -anchor nw -width 550 -tags {sqlpage} -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
.c bind sqlpage <Button-1> {.c delete sqlpage}
|
||||
}
|
||||
|
||||
proc ql_swap_sort {w x y} {
|
||||
global qlvar
|
||||
set obj [$w find closest $x $y]
|
||||
set taglist [.c gettags $obj]
|
||||
if {[lsearch $taglist sort]==-1} return
|
||||
set cum [.c itemcget $obj -text]
|
||||
if {$cum=="unsorted"} {
|
||||
set cum Ascending
|
||||
} elseif {$cum=="Ascending"} {
|
||||
set cum Descending
|
||||
} else {
|
||||
set cum unsorted
|
||||
}
|
||||
set col [expr int(($x-$qlvar(xoffs))/$qlvar(reswidth))]
|
||||
set qlvar(ressort) [lreplace $qlvar(ressort) $col $col $cum]
|
||||
.c itemconfigure $obj -text $cum
|
||||
}
|
||||
|
||||
proc qlc_click {x y w} {
|
||||
global qlvar
|
||||
set qlvar(panstarted) 0
|
||||
if {$w==".c"} {
|
||||
set canpan 1
|
||||
if {$y<$qlvar(yoffs)} {
|
||||
if {[llength [.c find overlapping $x $y $x $y]]!=0} {set canpan 0}
|
||||
set qlvar(panobject) tables
|
||||
} else {
|
||||
set qlvar(panobject) result
|
||||
}
|
||||
if {$canpan} {
|
||||
. configure -cursor hand1
|
||||
set qlvar(panstartx) $x
|
||||
set qlvar(panstarty) $y
|
||||
set qlvar(panstarted) 1
|
||||
}
|
||||
}
|
||||
set isedit 0
|
||||
catch {set isedit $qlvar(critedit)}
|
||||
# Compute the offset of the result panel due to panning
|
||||
set resoffset [expr [lindex [.c bbox resmarker] 0]-$qlvar(xoffs)]
|
||||
if {$isedit} {
|
||||
set qlvar(rescriteria) [lreplace $qlvar(rescriteria) $qlvar(critcol) $qlvar(critcol) $qlvar(critval)]
|
||||
.c delete cr-c$qlvar(critcol)-r$qlvar(critrow)
|
||||
.c create text [expr $resoffset+4+$qlvar(xoffs)+$qlvar(critcol)*$qlvar(reswidth)] [expr $qlvar(yoffs)+46+15*$qlvar(critrow)] -anchor nw -text $qlvar(critval) -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -tags [subst {resp cr-c$qlvar(critcol)-r$qlvar(critrow)}]
|
||||
set qlvar(critedit) 0
|
||||
}
|
||||
catch {destroy .entc}
|
||||
if {$y<[expr $qlvar(yoffs)+46]} return
|
||||
if {$x<[expr $qlvar(xoffs)+5]} return
|
||||
set col [expr int(($x-$qlvar(xoffs)-$resoffset)/$qlvar(reswidth))]
|
||||
if {$col>=[llength $qlvar(resfields)]} return
|
||||
set nx [expr $col*$qlvar(reswidth)+8+$qlvar(xoffs)+$resoffset]
|
||||
set ny [expr $qlvar(yoffs)+76]
|
||||
# Get the old criteria value
|
||||
set qlvar(critval) [lindex $qlvar(rescriteria) $col]
|
||||
entry .entc -textvar qlvar(critval) -borderwidth 0 -background #FFFFFF -highlightthickness 0 -selectborderwidth 0 -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*
|
||||
place .entc -x $nx -y $ny -height 14
|
||||
focus .entc
|
||||
bind .entc <Button-1> {set qlvar(panstarted) 0}
|
||||
set qlvar(critcol) $col
|
||||
set qlvar(critrow) 0
|
||||
set qlvar(critedit) 1
|
||||
}
|
||||
|
||||
proc Window {args} {
|
||||
global vTcl
|
||||
set cmd [lindex $args 0]
|
||||
set name [lindex $args 1]
|
||||
set newname [lindex $args 2]
|
||||
set rest [lrange $args 3 end]
|
||||
if {$name == "" || $cmd == ""} {return}
|
||||
if {$newname == ""} {
|
||||
set newname $name
|
||||
}
|
||||
set exists [winfo exists $newname]
|
||||
switch $cmd {
|
||||
show {
|
||||
if {$exists == "1" && $name != "."} {wm deiconify $name; return}
|
||||
if {[info procs vTclWindow(pre)$name] != ""} {
|
||||
eval "vTclWindow(pre)$name $newname $rest"
|
||||
}
|
||||
if {[info procs vTclWindow$name] != ""} {
|
||||
eval "vTclWindow$name $newname $rest"
|
||||
}
|
||||
if {[info procs vTclWindow(post)$name] != ""} {
|
||||
eval "vTclWindow(post)$name $newname $rest"
|
||||
}
|
||||
}
|
||||
hide { if $exists {wm withdraw $newname; return} }
|
||||
iconify { if $exists {wm iconify $newname; return} }
|
||||
destroy { if $exists {destroy $newname; return} }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
set base ""
|
||||
bind $base <B1-Motion> {
|
||||
ql_pan %x %y
|
||||
}
|
||||
bind $base <Button-1> {
|
||||
qlc_click %x %y %W
|
||||
}
|
||||
bind $base <ButtonRelease-1> {
|
||||
ql_dragstop %x %y
|
||||
}
|
||||
bind $base <Key-Delete> {
|
||||
ql_delete_object
|
||||
}
|
||||
canvas $base.c \
|
||||
-background #fefefe -borderwidth 2 -height 207 -relief ridge \
|
||||
-takefocus 0 -width 295
|
||||
label $base.msg -textvar msg -borderwidth 1 -relief sunken
|
||||
button $base.b2 \
|
||||
-borderwidth 1 -command ql_draw_lizzard \
|
||||
-font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 \
|
||||
-pady 3 -text {Paint demo tables}
|
||||
button $base.showbtn \
|
||||
-borderwidth 1 -command ql_show_sql \
|
||||
-font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-* -padx 9 \
|
||||
-pady 3 -text {Show SQL}
|
||||
###################
|
||||
# SETTING GEOMETRY
|
||||
###################
|
||||
place $base.c \
|
||||
-x 5 -y 30 -width 578 -height 425 -anchor nw -bordermode ignore
|
||||
place $base.b2 \
|
||||
-x 5 -y 5 -height 26 -anchor nw -bordermode ignore
|
||||
place $base.showbtn \
|
||||
-x 130 -y 5 -height 26 -anchor nw -bordermode ignore
|
||||
place $base.msg \
|
||||
-x 5 -y 460 -width 578 -anchor nw
|
||||
|
||||
main $argc $argv
|
|
@ -0,0 +1,43 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.12 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h3>
|
||||
Image gallery
|
||||
<hr WIDTH="100%"></h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="mainwindow.gif">Main window</a> 9 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="newtable.gif">Creating a new table</a> 9 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="permissions.gif">Table access control</a> 10 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="addindex.gif">Adding a new index</a> 12 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="vdesigner.gif">The visual query designer</a> 16 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="function.gif">Working with functions</a> 10 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="forms.gif">Form designer</a> 19 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="newuser.gif">User management</a> 4 Kb</li>
|
||||
|
||||
<li>
|
||||
<a href="help.gif">Help</a> 7 Kb</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Special locale characters</TITLE>
|
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]">
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000">
|
||||
|
||||
<H1>Special locale characters and PgAccess
|
||||
<HR WIDTH="100%"></H1>
|
||||
|
||||
<P>The problem is related with some special characters used in different
|
||||
countries because PgAccess did not use fonts with `-ISO8859-1' encoding
|
||||
-- </P>
|
||||
|
||||
<P>The sollution was proposed by H.P.Heidinger ( hph@hphbbs.ruhr.de) and
|
||||
it's very simple.</P>
|
||||
|
||||
<P>If you look into PgAccess, you will find fonts declared as follows :</P>
|
||||
|
||||
<P><TT>$ grep -e '-font' -i pgaccess.tcl<BR>
|
||||
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \<BR>
|
||||
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \<BR>
|
||||
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \<BR>
|
||||
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \</TT></P>
|
||||
|
||||
<P>It should be something like: -adobe-helvetica-medium-r-normal-*-*-120-*-*-*-*-iso8859-1</P>
|
||||
|
||||
<P>You can achieve this by running the following script :</P>
|
||||
|
||||
<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' >pgaccess.iso<BR>
|
||||
mv pgaccess.iso pgaccess.tcl<BR>
|
||||
chmod +x pgaccess.tcl</TT></P>
|
||||
|
||||
<P>The final version of PgAccess (1.0) will let the user decide what fonts
|
||||
will be used through a "preferences" dialog window.</P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,11 @@
|
|||
<html>
|
||||
<body bgcolor="#FEFEDF">
|
||||
<h2>ToDo List</h2><hr>
|
||||
- Finish the report generator module<br>
|
||||
- Enhance the form designer<br>
|
||||
- Enhance the scripts module<br>
|
||||
- Translations in other languages<br>
|
||||
<br>
|
||||
Please send any suggestions by mail to <a href="mailto:teo@flex.ro">Constantin Teodorescu</a>.
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
|||
Cassileth, BR~Unorthodox Cancer Medicine~Cancer Investigation~~1986~4~6~591-598
|
After Width: | Height: | Size: 28 KiB |
|
@ -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' >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 "preferences" 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>
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
|
@ -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/<name></samp>, where <name> 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>
|
|
@ -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 -><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><username></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>
|
|
@ -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>
|
|
@ -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><username></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>
|
|
@ -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>
|
|
@ -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 -><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>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,50 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
<b>29 August 1999</b> - PgAccess 0.98 has been released!
|
||||
<ul>
|
||||
<li>
|
||||
international version (romanian, french, italian translations available)
|
||||
in separate files (japanese translation now possible)</li>
|
||||
|
||||
<li>
|
||||
context sensitive help, complete help for SQL commands</li>
|
||||
|
||||
<li>
|
||||
geometry changes for many forms</li>
|
||||
|
||||
<li>
|
||||
form designer enhancements (widget icons , new attribute window style,
|
||||
form startup script)</li>
|
||||
|
||||
<li>
|
||||
ability to inspect PostgreSQL system tables (preferences)</li>
|
||||
|
||||
<li>
|
||||
enhanced table design window, table permissions</li>
|
||||
|
||||
<li>
|
||||
distribution archive changes</li>
|
||||
|
||||
<li>
|
||||
unified internal global variables</li>
|
||||
|
||||
<li>
|
||||
unified internal window naming conventions</li>
|
||||
|
||||
<li>
|
||||
usage of Tcl namespaces for all modules</li>
|
||||
|
||||
<li>
|
||||
PgAccess developer <a href="api.html">API</a></li>
|
||||
|
||||
<li>
|
||||
web site enhancements</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,45 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
|
||||
</head>
|
||||
<body bgcolor="#FEFEDF">
|
||||
|
||||
<h2>
|
||||
PgAccess on Win32</h2>
|
||||
|
||||
<hr>In order to run PgAccess on a Win32 workstation you should follow the
|
||||
following steps:
|
||||
<ol>
|
||||
<li>
|
||||
download and install a Tcl/Tk package from <a href="http://www.scriptics.com">Scriptics</a>
|
||||
(8.0.x or 8.1.x)</li>
|
||||
|
||||
<li>
|
||||
install PgAccess package</li>
|
||||
|
||||
<li>
|
||||
check the Tcl/Tk version that you have</li>
|
||||
|
||||
<li>
|
||||
check the PostgreSQL version installed on your database server machine</li>
|
||||
|
||||
<li>
|
||||
get from win32/dll directory the appropriate libraries suitable for your
|
||||
Tcl/Tk version and PostgreSQL version and copy them into your Windows/System
|
||||
directory renaming them as libpq.dll and libpgtcl.dll</li>
|
||||
|
||||
<li>
|
||||
check if your win32 workstation is able to see your database server (ping
|
||||
yourdatabaseserver)</li>
|
||||
|
||||
<li>
|
||||
ask your database administrator to verify if your win32 workstation has
|
||||
access rights to the database (pg_hba.conf)</li>
|
||||
</ol>
|
||||
|
||||
<p><br>You should be able to run PgAccess.
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 896 B |
After Width: | Height: | Size: 873 B |
After Width: | Height: | Size: 907 B |
After Width: | Height: | Size: 908 B |
After Width: | Height: | Size: 80 B |
After Width: | Height: | Size: 896 B |
After Width: | Height: | Size: 897 B |
After Width: | Height: | Size: 870 B |
After Width: | Height: | Size: 911 B |
|
@ -0,0 +1,525 @@
|
|||
array set Messages {
|
||||
|
||||
"Label" "Etiquette"
|
||||
|
||||
"Save schema" "Sauver schémas"
|
||||
|
||||
"Is unique ?" "Est unique ?"
|
||||
|
||||
"Report builder" "Constructeur d'états"
|
||||
|
||||
"Criteria" "Critère"
|
||||
|
||||
"FATAL ERROR upgrading PgAccess table" "ERREUR FATALE en actualisant la table PgAccess"
|
||||
|
||||
"Save this query as a view" "Sauver cette requête comme vue ?"
|
||||
|
||||
"Page header" "En-tête de page"
|
||||
|
||||
"Query name" "Nom de requête"
|
||||
|
||||
"Please select an object first!" "Selectionnez un objet d'abord"
|
||||
|
||||
"Fields :" "Le champs de index"
|
||||
|
||||
"Name" "Nom"
|
||||
|
||||
"File name" "Nom du fichier"
|
||||
|
||||
"Detail record" "Detail d'enregistrement"
|
||||
|
||||
"Auto-load the last opened database at startup" "Chargement automatique de la base au démarrage"
|
||||
|
||||
"Maxvalue" "Valeur maximale"
|
||||
|
||||
"Start value" "Valeur de début"
|
||||
|
||||
"Report fields" "Champs de l'état"
|
||||
|
||||
"Test form" "Tester formulaire"
|
||||
|
||||
"Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Erreur de liaison à la base de données '%s' pour machine %s \n\nMessage d'erreur PostgreSQL :%s"
|
||||
|
||||
"No field type ?" "Type champ inexistant ?"
|
||||
|
||||
"User without name?" "Cette utilisateur a-t-il un nom?"
|
||||
|
||||
"You have to supply a name for this schema!" "Vous devez fournir un nom pour ce schéma !"
|
||||
|
||||
"Last value" "Dernière valeur"
|
||||
|
||||
"Preferences" "Préférences"
|
||||
|
||||
"View '%s' already exists!\nOverwrite ?" "La vue '%s' existe déjà!\n Ecraser ?"
|
||||
|
||||
"You have to select an index!" "Vous devez selectionner un index!"
|
||||
|
||||
"Field type" "Type de champ"
|
||||
|
||||
"Script name" "Nom du script"
|
||||
|
||||
"Reload" "Valider"
|
||||
|
||||
"Remove table %s from query?" "Eliminer table %s de la requête ?"
|
||||
|
||||
"SQL window" "Fenêtre SQL"
|
||||
|
||||
"Allow user to create other users" "Peut créer d'autres utilisateurs"
|
||||
|
||||
"Delete current record ?" "Détruire enregistrement courant ?"
|
||||
|
||||
"List box" "Liste"
|
||||
|
||||
"Save to query builder" "Sauver le constructeur de requêtes"
|
||||
|
||||
"fixed width" "largeur de police fixe"
|
||||
|
||||
"Scripts" "Scripts"
|
||||
|
||||
"Yes" "Oui"
|
||||
|
||||
"Add label" "Ajouter étiquette"
|
||||
|
||||
"Sequence created!" "Le séquence avait été créée"
|
||||
|
||||
"Field information" "Information de champ"
|
||||
|
||||
"Design" "Editer"
|
||||
|
||||
"Field" "Champ"
|
||||
|
||||
"You have to supply an external file name!" "Vous devez fournir un nom du fichier"
|
||||
|
||||
"Increment" "Incrément"
|
||||
|
||||
"No" "Non"
|
||||
|
||||
"Form design" "Création du formulaire"
|
||||
|
||||
"You must supply a return type!" "Vous devez fournir un type de retour"
|
||||
|
||||
"Remove field from result ?" "Eliminer champ du résultat ?"
|
||||
|
||||
"There is another object (a %s) with the same name.\nPlease change it!" "Il y a un autre objet (%s) avec le même nom.\nChangez le SVP!"
|
||||
|
||||
"This query has no commands?" "Cette requête n'a pas de définition?"
|
||||
|
||||
"Execute query" "Execute requête"
|
||||
|
||||
"field cannot be null" "champ ne peut être vide"
|
||||
|
||||
"Help" "Aide"
|
||||
|
||||
"Rename column" "Renomme champ"
|
||||
|
||||
"Database" "Base de données"
|
||||
|
||||
"Information" "Information"
|
||||
|
||||
"Close" "Fermer"
|
||||
|
||||
"Command" "Commande"
|
||||
|
||||
"Table" "Table"
|
||||
|
||||
"verify password" "encore un fois"
|
||||
|
||||
"Vacuum" "Vider"
|
||||
|
||||
"Default value" "Valeur par defaut"
|
||||
|
||||
"Import" "Importer"
|
||||
|
||||
"Delete index" "Détruire index"
|
||||
|
||||
"Move up" "Monter"
|
||||
|
||||
"index properties" "Propriétés d'index"
|
||||
|
||||
"check" "vérifier"
|
||||
|
||||
"Create new table" "Création de nouvelle table"
|
||||
|
||||
"Visual query designer" "Créateur visuel de requêtes"
|
||||
|
||||
"Delete all" "Détruire tous"
|
||||
|
||||
"You are going to delete\n\n %s \n\nProceed?" "Vous allez détruire\n\n %s \n\nD'accord?"
|
||||
|
||||
"Schema name" "Nom de schéma"
|
||||
|
||||
"Error executing query" "Erreur en exécutant la requête"
|
||||
|
||||
"Report name" "Nom de l'état"
|
||||
|
||||
"Add field" "Ajout champ"
|
||||
|
||||
"Field name" "Nom de champ"
|
||||
|
||||
"FATAL ERROR searching for PgAccess system tables" "ERREUR FATALE en cherchant le système de tables PgAccess"
|
||||
|
||||
"A big number of rows displayed in table view will take a lot of memory!" "L'affichage d'un grand nombre de colonnes prend beaucoup de mémoire"
|
||||
|
||||
"Preview" "Pré-visualisation"
|
||||
|
||||
"Users" "Utilisateurs"
|
||||
|
||||
"Owner" "Auteur"
|
||||
|
||||
"Form's window internal name" "Le nom interne de la fenêtre de formulaire"
|
||||
|
||||
"Sort field" "Trier champs"
|
||||
|
||||
"New name is the same as the old one!" "Le nouveau nom est le même que l'ancien"
|
||||
|
||||
"Warning" "Avertissement"
|
||||
|
||||
"Suggestions at" "Suggestions à"
|
||||
|
||||
"Functions" "Fonctions"
|
||||
|
||||
"Schema" "Schéma"
|
||||
|
||||
"Open" "Ouvrir"
|
||||
|
||||
"size" "taille"
|
||||
|
||||
"Delete" "Détruire"
|
||||
|
||||
"Returns" "Retours"
|
||||
|
||||
"Define new user" "Définir nouvel utilisateur"
|
||||
|
||||
"Move down" "Descendre"
|
||||
|
||||
"Design script" "Script de création"
|
||||
|
||||
"Check box" "Case à cocher"
|
||||
|
||||
"FINAL WARNING" "DERNIER AVERTISSEMENT"
|
||||
|
||||
"Add table" "Ajouter table"
|
||||
|
||||
"Table viewer font" "Police de visualisateur de tables"
|
||||
|
||||
"The field type is not specified!" "Le type de champ n'est pas spécifié"
|
||||
|
||||
"Close test form" "Fermer test du formulaire"
|
||||
|
||||
"Export table" "Exporter"
|
||||
|
||||
"Add new index" "Ajout nouvel index"
|
||||
|
||||
"Left" "Gauche"
|
||||
|
||||
"Field delimiter" "Séparateur de champs"
|
||||
|
||||
"Add formula" "Ajouter formule"
|
||||
|
||||
"Open database" "Ouvre la base de données"
|
||||
|
||||
"Return" "Retour"
|
||||
|
||||
"Changed fonts may appear in the next working session!" "Les nouvelles polices apparaîtront à la prochaine session"
|
||||
|
||||
"Error" "Erreur"
|
||||
|
||||
"Enter a field name" "Entrez un nom de champ !"
|
||||
|
||||
"field name" "Nom de champ"
|
||||
|
||||
"Forms" "Formulaires"
|
||||
|
||||
"Cannot add column" "Ne peut ajouter de colonne"
|
||||
|
||||
"Clean" "Nettoyer"
|
||||
|
||||
"Delete all objects ?" "Détruire tous les objets"
|
||||
|
||||
"Preferred language" "Langage préféré"
|
||||
|
||||
"Execute SQL" "Exécute SQL"
|
||||
|
||||
"Sequences" "Séquences"
|
||||
|
||||
"Button" "Bouton"
|
||||
|
||||
"Language" "Langage"
|
||||
|
||||
"Query '%s' was not found!" "La requête '%s' n'a pas été trouvée"
|
||||
|
||||
"Object" "Objet"
|
||||
|
||||
"Font fixed" "Police fixe"
|
||||
|
||||
"Table name" "Nom de table"
|
||||
|
||||
"Export" "Export"
|
||||
|
||||
"Change user" "Changer utilisateur"
|
||||
|
||||
"You must give object a new name!" "Vous devez donner un nouveau nom"
|
||||
|
||||
"Query" "Requête"
|
||||
|
||||
"User name" "Nom d'utilisateur"
|
||||
|
||||
"Font normal" "Police normale"
|
||||
|
||||
"Import table" "Importer"
|
||||
|
||||
"Toolbar" "Outils"
|
||||
|
||||
"Radio btn" "Radio"
|
||||
|
||||
"You must supply a name for this function!" "Vous devez fournir un nom pour la fonction"
|
||||
|
||||
"You have to select index fields!" "Vous devez selectionner le champ pour l'index"
|
||||
|
||||
"Constraint" "Contrainte"
|
||||
|
||||
"The script must have a name" "Le script doit avoir un nom"
|
||||
|
||||
"Save" "Sauver"
|
||||
|
||||
"Exit" "Quitter"
|
||||
|
||||
"Inherits" "Source"
|
||||
|
||||
"Delete field" "Détruire"
|
||||
|
||||
"About" "A propos"
|
||||
|
||||
"Empty field name ?" "Nom de champ inexistant ?"
|
||||
|
||||
"All report information will be deleted.\n\nProceed ?" "Toutes les informations de l'état vont être détruites\n\nContinuer ?"
|
||||
|
||||
"Host" "Machine"
|
||||
|
||||
"vacuuming database %s ..." "Vider base %s ..."
|
||||
|
||||
"Indexes defined" "Index définis"
|
||||
|
||||
"You must specify field size!" "La taille du champ doit être précisée"
|
||||
|
||||
"Schema '%s' already exists!" "Le schéma '%s' existe déjà!"
|
||||
|
||||
"There is another field with the same name: '%s'!\n\nReplace it ?" "Il y a un autre champ avec le même nom : '%s'!\n\nRemplacer?"
|
||||
|
||||
"Contents" "Contient"
|
||||
|
||||
"Views" "Vues"
|
||||
|
||||
"Variable" "Variable"
|
||||
|
||||
"Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Erreur en exécutant la requête\n\n%s\n\nMessage d'erreur PostgreSQL :\n%s \n Statut de PostgreSQL:%s"
|
||||
|
||||
"Filter conditions" "Conditions de filtre"
|
||||
|
||||
"Error retrieving query definition" "Erreur en retrouvant la définition de la requête"
|
||||
|
||||
"Error deleting view" "Erreur en détruisant la vue"
|
||||
|
||||
"New" "Nouveau"
|
||||
|
||||
"Tables" "Tables"
|
||||
|
||||
"Create" "Créer"
|
||||
|
||||
"Forms need an internal name, only literals, low case" "Les formulaires ont besoin d'un nom interne, seulement en lettres minuscules"
|
||||
|
||||
"Do you want to save the form into the database?" "Voulez vous sauver le formulaire dans la base?"
|
||||
|
||||
"Schema '%s' was not found!" "Le schéma '%s' n'a pas été trouvé"
|
||||
|
||||
"proportional" "Proportionnelle"
|
||||
|
||||
"Function saved!" "Le fonction avait ete créée"
|
||||
|
||||
"with OIDs" "avec des OIDs"
|
||||
|
||||
"Table information" "Information de table"
|
||||
|
||||
"Error inserting new record" "Erreur en introduisant le nouvel enregistrement"
|
||||
|
||||
"Column name '%s' already exists in this table!" "Le nom de colonne existe déjà dans cette table !"
|
||||
|
||||
"File" "Fichier"
|
||||
|
||||
"Your table has no fields!" "Cette table n'a pas de champ?"
|
||||
|
||||
"Height" "Hauteur"
|
||||
|
||||
"You will always get the latest version at:" "Le derniere version toujours à"
|
||||
|
||||
"Form must have a name" "Le formulaire doit avoir un nom !"
|
||||
|
||||
"Password" "Mot de passe"
|
||||
|
||||
"Valid until (date)" "Valable jusqu'à"
|
||||
|
||||
"Report source" "Source de l'état"
|
||||
|
||||
"Allow user to create databases" "Peut créer une base"
|
||||
|
||||
"Cancel" "Abandon"
|
||||
|
||||
"Is clustered ?" "Est groupé ?"
|
||||
|
||||
"Add new column" "Ajout nouveau champ"
|
||||
|
||||
"Show SQL" "Montrez le code SQL."
|
||||
|
||||
"New name" "Nouveau nom"
|
||||
|
||||
"Table '%s' not found!" "Le table '%s' n'est pas trouvée"
|
||||
|
||||
"Form name" "Nom du formulaire"
|
||||
|
||||
"Visual designer" "Créateur visuel"
|
||||
|
||||
"You choose to delete index\n\n %s \n\nProceed?" "Vous allez détruire index\n\n %s \n\nConfirmation?"
|
||||
|
||||
"Error retrieving from" "Erreur en retrouvant..."
|
||||
|
||||
"Save query definition" "Sauver la définition de la requête"
|
||||
|
||||
"A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Une Tcl/Tk interface pour\nPostgreSQL\npar Constantin Teodorescu"
|
||||
|
||||
"Operation completed!" "Opération finie"
|
||||
|
||||
"Max rows displayed in table/query view" "Nombre maximal de colonnes affichées dans la table/vue de requête"
|
||||
|
||||
"Passwords do not match!" "Les mots de passe ne vont pas"
|
||||
|
||||
"Rename" "Renommer"
|
||||
|
||||
"Entry" "Entrée"
|
||||
|
||||
"Error retrieving schema definition" "Erreur en retrouvant la définition du schéma"
|
||||
|
||||
"This is an action query!\n\nExecute it?" "Ceci est une requête d'action !\nExécuter ?"
|
||||
|
||||
"Error retrieving view definition for" "Erreur en lisant la définition pour la vue"
|
||||
|
||||
"options" "options"
|
||||
|
||||
"Sequence '%s' not found!" "Le séquence '%s' n'a pas été trouvée"
|
||||
|
||||
"Text" "Texte"
|
||||
|
||||
"Tcl error executing pg_exec %s\n\n%s" "Erreur Tcl en exécutant %s\n\n%s"
|
||||
|
||||
"Width" "Largeur"
|
||||
|
||||
"You have to supply a name for this query!" "Vous devez donner un nom à cette requête"
|
||||
|
||||
"Accessing data. Please wait ..." "Lit les données. Patience ..."
|
||||
|
||||
"Report footer" "Pied de rapport"
|
||||
|
||||
"Parameters" "Paramètres"
|
||||
|
||||
"Queries" "Requêtes"
|
||||
|
||||
"Query '%s' already exists!" "La requête '%s' existe dejà!"
|
||||
|
||||
"Font bold" "Police grasse"
|
||||
|
||||
"Query builder" "Constructeur de requêtes"
|
||||
|
||||
"Error defining view" "Erreur en définissant la vue"
|
||||
|
||||
"Top" "Haut"
|
||||
|
||||
"You must supply a name for your table!" "Vous devez introduire un nom pour cette table"
|
||||
|
||||
"Page footer" "Pied de page"
|
||||
|
||||
"Font italic" "Police italique"
|
||||
|
||||
"Field name not entered!" "Le nom de champ n'est pas entré"
|
||||
|
||||
"Index name cannot be null!" "Le nom de l'index ne peut être nul"
|
||||
|
||||
"Sort" "Trier"
|
||||
|
||||
"Import-Export table" "Import/Export table"
|
||||
|
||||
"Point" "Point"
|
||||
|
||||
"type" "type"
|
||||
|
||||
"You should supply a name for this sequence" "Vous devez donner un nom à la séquence"
|
||||
|
||||
"Remove link ?" "Détruire cette liaison?"
|
||||
|
||||
"You have to supply a table name!" "Vous devez fournir un nom de table"
|
||||
|
||||
"Report header" "En tête de l'état"
|
||||
|
||||
"Attributes" "Attributs"
|
||||
|
||||
"Table '%s' already in schema" "Le table est déjà dans le schéma"
|
||||
|
||||
"Username" "Utilisateur"
|
||||
|
||||
"Minvalue" "Valeur minimale"
|
||||
|
||||
"Sequence name" "Nom de séquence"
|
||||
|
||||
"Define sequence" "Définir la séquence"
|
||||
|
||||
"Function" "Fonction"
|
||||
|
||||
"Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Tri et filtrage pas (encore) possible à partir des requêtes!\n\nEntrez les dans la définition de la requête SVP"
|
||||
|
||||
"Reports" "Etats"
|
||||
|
||||
"Columns" "Champs"
|
||||
|
||||
"Indexes" "Index"
|
||||
|
||||
"Permissions" "Permissions"
|
||||
|
||||
"not null" "non vide"
|
||||
|
||||
"Cluster index" "index groupe"
|
||||
|
||||
"index columns" "index champs"
|
||||
|
||||
"Add user" "Ajoute utilisateur"
|
||||
|
||||
"Change permissions" "Change droits"
|
||||
|
||||
"select" "sélections"
|
||||
|
||||
"update" "actualise"
|
||||
|
||||
"insert" "introduire"
|
||||
|
||||
"rule" "règles"
|
||||
|
||||
"Identification" "Identification"
|
||||
|
||||
"Owner ID" "ID du propriétaire"
|
||||
|
||||
"Has primary key ?" "A une clé primaire ?"
|
||||
|
||||
"Has rules ?" "A des règles?"
|
||||
|
||||
"Statistics" "Statistiques"
|
||||
|
||||
"Number of tuples" "Nombre des enregistrements"
|
||||
|
||||
"Number of pages" "Nombres des pages"
|
||||
|
||||
"Index name" "Nom d'index"
|
||||
|
||||
"Index fields" "Champs d'index"
|
||||
|
||||
"Table OID" "OID de table"
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,539 @@
|
|||
array set Messages {
|
||||
|
||||
"Label" "Etichetta"
|
||||
|
||||
"Save schema" "Salva lo schema"
|
||||
|
||||
"Is unique ?" "E' unico ?"
|
||||
|
||||
"Report builder" "Report builder"
|
||||
|
||||
"Criteria" "Criterio"
|
||||
|
||||
"FATAL ERROR upgrading PgAccess table" "ERRORE FATALE aggiornando le tabelle PgAccess"
|
||||
|
||||
"Save this query as a view" "Salva questa query come View"
|
||||
|
||||
"Page header" "Testata di pagina"
|
||||
|
||||
"Query name" "Nome query"
|
||||
|
||||
"Please select an object first!" "Seleziona prima un'oggetto!"
|
||||
|
||||
"Fields :" "Campi :"
|
||||
|
||||
"Name" "Nome"
|
||||
|
||||
"File name" "Nome del file"
|
||||
|
||||
"Detail record" "Dettaglio del record"
|
||||
|
||||
"Auto-load the last opened database at startup" "Apertura automatica ultimo database all'avvio"
|
||||
|
||||
"Maxvalue" "Valore massimo"
|
||||
|
||||
"Start value" "Valore d'inizio"
|
||||
|
||||
"Report fields" "Campi disponibili"
|
||||
|
||||
"Test form" "Test form"
|
||||
|
||||
"Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Errore di connessione al database '%s' sull'host %s \n\nMessaggio d'errore di PostgreSQL :%s"
|
||||
|
||||
"No field type ?" "Nessun tipo per il campo?"
|
||||
|
||||
"User without name?" "Utente senza nome ?"
|
||||
|
||||
"You have to supply a name for this schema!" "Devi specificare un nome per lo schema!"
|
||||
|
||||
"Last value" "Ultimo valore"
|
||||
|
||||
"Preferences" "Preferenze"
|
||||
|
||||
"View '%s' already exists!\nOverwrite ?" "View '%s' esiste gia'!\nSovrascrivo ?"
|
||||
|
||||
"You have to select an index!" "Devi scegliere un'indice!"
|
||||
|
||||
"Field type" "Tipo campo"
|
||||
|
||||
"Script name" "Nome dello Script"
|
||||
|
||||
"Reload" "Ricarica"
|
||||
|
||||
"Remove table %s from query?" "Rimuovere la tabella %s dalla query?"
|
||||
|
||||
"SQL window" "Finestra SQL"
|
||||
|
||||
"Allow user to create other users" "L'utente puo' creare altri utenti"
|
||||
|
||||
"Delete current record ?" "Cancello il record corrente? "
|
||||
|
||||
"List box" "Lista"
|
||||
|
||||
"Save to query builder" "Salva nel query builder"
|
||||
|
||||
"fixed width" "larghezza fissa"
|
||||
|
||||
"Scripts" "Scripts"
|
||||
|
||||
"Yes" "Si"
|
||||
|
||||
"Add label" "Aggiungi etichetta"
|
||||
|
||||
"Sequence created!" "Sequenza creata !"
|
||||
|
||||
"Field information" "Informazioni sul campo"
|
||||
|
||||
"Design" "Disegna"
|
||||
|
||||
"Field" "Campo"
|
||||
|
||||
"You have to supply an external file name!" "Devi specificare un nome file esterno!"
|
||||
|
||||
"Increment" "Incremento"
|
||||
|
||||
"No" "No"
|
||||
|
||||
"Form design" "Disegna il Form"
|
||||
|
||||
"You must supply a return type!" "Devi specificare il tipo di dato ritornato"
|
||||
|
||||
"Remove field from result ?" "Eliminare il campo dal risultato ?"
|
||||
|
||||
"There is another object (a %s) with the same name.\nPlease change it!" "Esiste un'altro oggetto (un %s) con lo stesso nome.\nCambia nome!"
|
||||
|
||||
"This query has no commands?" "Questa query non ha comandi ?"
|
||||
|
||||
"Execute query" "Esegui query"
|
||||
|
||||
"field cannot be null" "Il campo non puo' essere nullo"
|
||||
|
||||
"Help" "Aiuto"
|
||||
|
||||
"Rename column" "Rinomina campo"
|
||||
|
||||
"Database" "Database"
|
||||
|
||||
"Information" "Informazioni"
|
||||
|
||||
"Close" "Chiudi"
|
||||
|
||||
"Command" "Comando"
|
||||
|
||||
"Table" "Tabella"
|
||||
|
||||
"verify password" "verifica password"
|
||||
|
||||
"Vacuum" "Vacuum"
|
||||
|
||||
"Default value" "Valore predefinito"
|
||||
|
||||
"Import" "Importa"
|
||||
|
||||
"Delete index" "Cancella indice"
|
||||
|
||||
"Move up" "Muovi su'"
|
||||
|
||||
"index properties" "proprieta' dell'indice"
|
||||
|
||||
"check" "Controlla"
|
||||
|
||||
"Create new table" "Crea una nuova tabella"
|
||||
|
||||
"Visual query designer" "Visual query designer"
|
||||
|
||||
"Delete all" "Cancella tutto"
|
||||
|
||||
"You are going to delete\n\n %s \n\nProceed?" "Stai per cancellare\n\n %s\n\n Procedo?"
|
||||
|
||||
"Schema name" "Nome dello schema"
|
||||
|
||||
"Error executing query" "Errore eseguendo la query"
|
||||
|
||||
"Report name" "Nome del report"
|
||||
|
||||
"Add field" "Aggiungi campo"
|
||||
|
||||
"Field name" "Nome campo"
|
||||
|
||||
"FATAL ERROR searching for PgAccess system tables" "ERRORE FATALE cercando le tabelle PgAccess di sistema"
|
||||
|
||||
"A big number of rows displayed in table view will take a lot of memory!" "Un numero grande di righe visualizzate richiedera' molta memoria!"
|
||||
|
||||
"Preview" "Anteprima"
|
||||
|
||||
"Users" "Utenti"
|
||||
|
||||
"Owner" "Proprietario"
|
||||
|
||||
"Form's window internal name" "Il nome interno del form"
|
||||
|
||||
"Sort field" "Campo ordinato"
|
||||
|
||||
"New name is the same as the old one!" "Nuovo nome uguale al precedente!"
|
||||
|
||||
"Warning" "Attenzione"
|
||||
|
||||
"Suggestions at" "Suggerimenti a"
|
||||
|
||||
"Functions" "Funzioni"
|
||||
|
||||
"Schema" "Schema"
|
||||
|
||||
"Open" "Apri"
|
||||
|
||||
"size" "Dimensione"
|
||||
|
||||
"Delete" "Cancella"
|
||||
|
||||
"Returns" "Risultati"
|
||||
|
||||
"Define new user" "Definisce nuovo utente"
|
||||
|
||||
"Move down" "Muovi Giù"
|
||||
|
||||
"Design script" "Design script"
|
||||
|
||||
"Check box" "Casella si/no"
|
||||
|
||||
"FINAL WARNING" "Ultimo Warning"
|
||||
|
||||
"Add table" "Nuova tabella"
|
||||
|
||||
"Table viewer font" "Carattere del visualizzatore tabelle"
|
||||
|
||||
"The field type is not specified!" "Il tipo del campo non e' stato specificato!"
|
||||
|
||||
"Close test form" "Chiudi test form"
|
||||
|
||||
"Export table" "Esporta tabelle"
|
||||
|
||||
"Add new index" "Aggiungi nuovo indice"
|
||||
|
||||
"Left" "Sinistra"
|
||||
|
||||
"Field delimiter" "Delimitatore di campo"
|
||||
|
||||
"Add formula" "Aggiungi formula"
|
||||
|
||||
"Open database" "Apri il Database"
|
||||
|
||||
"Return" "Risultato"
|
||||
|
||||
"Changed fonts may appear in the next working session!" "I caratteri cambiati saranno visibili nella prossima sessione!"
|
||||
|
||||
"Error" "Errore"
|
||||
|
||||
"Enter a field name" "Inserisci un nome campo"
|
||||
|
||||
"field name" "Nome Campo"
|
||||
|
||||
"Forms" "Forms"
|
||||
|
||||
"Cannot add column" "Non posso aggiungere una colonna"
|
||||
|
||||
"Clean" "Pulisci"
|
||||
|
||||
"Delete all objects ?" "Cancellare tutti gli oggetti ?"
|
||||
|
||||
"Preferred language" "Lingua preferita"
|
||||
|
||||
"Execute SQL" "Esegui SQL"
|
||||
|
||||
"Sequences" "Sequences"
|
||||
|
||||
"Button" "Bottone"
|
||||
|
||||
"Language" "Lingua"
|
||||
|
||||
"Query '%s' was not found!" "La query '%s' non e' stata trovata!"
|
||||
|
||||
"Object" "Oggetto"
|
||||
|
||||
"Font fixed" "Carattere fisso"
|
||||
|
||||
"Table name" "Nome tabella"
|
||||
|
||||
"Export" "Esporta"
|
||||
|
||||
"Change user" "Cambia utente"
|
||||
|
||||
"You must give object a new name!" "Devi dare un nuovo nome all'oggetto!"
|
||||
|
||||
"Query" "Query"
|
||||
|
||||
"User name" "Nome utente"
|
||||
|
||||
"Font normal" "Carattere normale"
|
||||
|
||||
"Import table" "Importa"
|
||||
|
||||
"Toolbar" "Barra degli strumenti"
|
||||
|
||||
"Radio btn" "Bottone a scelta"
|
||||
|
||||
"You must supply a name for this function!" "Devi fornire un nome per questa funzione!"
|
||||
|
||||
"You have to select index fields!" "Devi selezionare i campi dell'indice"
|
||||
|
||||
"Constraint" "Constraint"
|
||||
|
||||
"The script must have a name" "Lo script deve avere un nome"
|
||||
|
||||
"Save" "Salva"
|
||||
|
||||
"Exit" "Esci"
|
||||
|
||||
"Inherits" "Eredita"
|
||||
|
||||
"Delete field" "Cancella campo"
|
||||
|
||||
"About" "Apropos"
|
||||
|
||||
"Empty field name ?" "Nome del campo vuoto?"
|
||||
|
||||
"All report information will be deleted.\n\nProceed ?" "Tutte le informazioni relative al report saranno cancellate.\n\n Procedo ?"
|
||||
|
||||
"Host" "Host"
|
||||
|
||||
"vacuuming database %s ..." "vacuuming database %s ..."
|
||||
|
||||
"Indexes defined" "Indici definiti"
|
||||
|
||||
"Owner ID" "Proprietario ID"
|
||||
|
||||
"You must specify field size!" "Devi specificare la dimensione del campo!"
|
||||
|
||||
"Schema '%s' already exists!" "Lo schema '%s' esiste gia'!"
|
||||
|
||||
"There is another field with the same name: '%s'!\n\nReplace it ?" "C'e' un'altro campo con lo stesso nome: '%s'!\n\nSostituisco ? "
|
||||
|
||||
"Contents" "Contenuto"
|
||||
|
||||
"Views" "Views"
|
||||
|
||||
"Variable" "Variabile"
|
||||
|
||||
"Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Errore eseguendo la query\n\n%s\n\nErrore PostgreSQL:\n%s\nPostgreSQL status:%s"
|
||||
|
||||
"Filter conditions" "Condizioni di filtro"
|
||||
|
||||
"Error retrieving query definition" "Errore caricando la definizione della query"
|
||||
|
||||
"Error deleting view" "Errore durante la cancellazione"
|
||||
|
||||
"New" "Nuovo"
|
||||
|
||||
"Tables" "Tabelle"
|
||||
|
||||
"Create" "Crea"
|
||||
|
||||
"Forms need an internal name, only literals, low case" "Il form ha bisogno di un nome interno, solo lettere minuscole"
|
||||
|
||||
"Do you want to save the form into the database?" "Vuoi salvare il form nel database ?"
|
||||
|
||||
"Schema '%s' was not found!" "Lo schema '%s' non e' stato trovato!"
|
||||
|
||||
"proportional" "proporzionale"
|
||||
|
||||
"Function saved!" "Funzione salvata!"
|
||||
|
||||
"with OIDs" "con OIDs"
|
||||
|
||||
"Table information" "Informazioni tabella"
|
||||
|
||||
"Error inserting new record" "Errore inserendo il nuovo record"
|
||||
|
||||
"Column name '%s' already exists in this table!" "Il campo '%s' esiste gia'!"
|
||||
|
||||
"File" "File"
|
||||
|
||||
"Your table has no fields!" "La tabella non ha campi !"
|
||||
|
||||
"Height" "Altezza"
|
||||
|
||||
"You will always get the latest version at:" "Troverai l'ultima versione su:"
|
||||
|
||||
"Form must have a name" "Il form deve avere un nome"
|
||||
|
||||
"Password" "Password"
|
||||
|
||||
"Valid until (date)" "Valido fino a"
|
||||
|
||||
"Report source" "Sorgente del report"
|
||||
|
||||
"Allow user to create databases" "L'utente puo' creare database"
|
||||
|
||||
"Cancel" "Abbandona"
|
||||
|
||||
"Is clustered ?" "Is clustered ?"
|
||||
|
||||
"Add new column" "Aggiungi nuovo campo"
|
||||
|
||||
"Show SQL" "Mostra SQL"
|
||||
|
||||
"New name" "Nuovo nome"
|
||||
|
||||
"Table '%s' not found!" "Tabella '%s' non trovata!"
|
||||
|
||||
"Form name" "Nome form"
|
||||
|
||||
"Visual designer" "Visual Designer"
|
||||
|
||||
"You choose to delete index\n\n %s \n\nProceed?" "Hai scelto di cancellare l'indice\n\n %s \n\nProcedo?"
|
||||
|
||||
"Error retrieving from" "Errore caricando da"
|
||||
|
||||
"Save query definition" "Salva la definizione della query"
|
||||
|
||||
"A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Una interfaccia Tcl/Tk verso\nPostgreSQL\n di Constantin Teodorescu"
|
||||
|
||||
"Operation completed!" "Operazione completata!"
|
||||
|
||||
"Max rows displayed in table/query view" "Numero massimo di righe nella visualiz. tabella/query"
|
||||
|
||||
"Passwords do not match!" "La password non corrisponde!"
|
||||
|
||||
"Rename" "Rinomina"
|
||||
|
||||
"Entry" "Entry"
|
||||
|
||||
"Error retrieving schema definition" "Errore caricando la definizione dello schema"
|
||||
|
||||
"This is an action query!\n\nExecute it?" "Questa e' una query d'azione\n\nLa eseguo?"
|
||||
|
||||
"Error retrieving view definition for" "Errore caricando la definizione di"
|
||||
|
||||
"options" "opzioni"
|
||||
|
||||
"Sequence '%s' not found!" "Sequence '%s' non trovata!"
|
||||
|
||||
"Text" "Testo"
|
||||
|
||||
"Tcl error executing pg_exec %s\n\n%s" "Errore Tcl eseguendo pg_exec %s\n\n%s"
|
||||
|
||||
"Width" "Larghezza"
|
||||
|
||||
"You have to supply a name for this query!" "Devi specificare un nomer per la query"
|
||||
|
||||
"Accessing data. Please wait ..." "Carico i dati, attendi..."
|
||||
|
||||
"Report footer" "Piede del report"
|
||||
|
||||
"Parameters" "Parametri"
|
||||
|
||||
"Queries" "Queries"
|
||||
|
||||
"Query '%s' already exists!" "La query '%s' esiste gia'!"
|
||||
|
||||
"Font bold" "Carattere grassetto"
|
||||
|
||||
"Query builder" "Query builder"
|
||||
|
||||
"Error defining view" "Errore definendo la query"
|
||||
|
||||
"Top" "Sopra"
|
||||
|
||||
"You must supply a name for your table!" "Devi specificare un nome per la tabella!"
|
||||
|
||||
"Page footer" "Pie' di pagina"
|
||||
|
||||
"Font italic" "Carattere corsivo"
|
||||
|
||||
"Field name not entered!" "Nome del campo non inserito!"
|
||||
|
||||
"Index name cannot be null!" "Il nome dell'indice non puo' essere nullo!"
|
||||
|
||||
"Sort" "Ordina"
|
||||
|
||||
"Import-Export table" "Importa/Esporta tabella"
|
||||
|
||||
"Point" "Punto"
|
||||
|
||||
"type" "tipo"
|
||||
|
||||
"You should supply a name for this sequence" "Tu devi fornire un nome per la sequenza"
|
||||
|
||||
"Remove link ?" "Rimuovere collegamento ?"
|
||||
|
||||
"You have to supply a table name!" "Devi specificare il nome tabella!"
|
||||
|
||||
"Report header" "Testata del report"
|
||||
|
||||
"Attributes" "Attributi"
|
||||
|
||||
"Table '%s' already in schema" "Tabella '%s' esiste gia' nello schema!"
|
||||
|
||||
"Username" "Nome utente"
|
||||
|
||||
"Minvalue" "Valore minimo"
|
||||
|
||||
"Sequence name" "Nome del sequence"
|
||||
|
||||
"Define sequence" "Definisci la sequenza"
|
||||
|
||||
"Function" "Funzione"
|
||||
|
||||
"Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Ordinamento e filtri non ancora disponibili dalle query!\n\nInseriscili nella definizione della query!"
|
||||
|
||||
"Reports" "Reports"
|
||||
|
||||
"primary key" "chiave primaria"
|
||||
|
||||
"Visual schema designer" "Ambiente sviluppo relazioni visuale"
|
||||
|
||||
Print Stampa
|
||||
|
||||
"Print to Postscript" "Stampa Postscript"
|
||||
|
||||
Commands Azioni
|
||||
|
||||
"Report preview" "Anteprima report"
|
||||
|
||||
"The printed image in Postscript is in the file pgaccess-report.ps" "La stampa in Poscript è nel file pgaccess-report.ps"
|
||||
|
||||
"Columns" "Campi"
|
||||
|
||||
"Indexes" "Indici"
|
||||
|
||||
"Permissions" "Autorita"
|
||||
|
||||
"not null" "non nullo"
|
||||
|
||||
"Cluster index" "Cluster indice"
|
||||
|
||||
"index columns" "campi dello indice"
|
||||
|
||||
"Add user" "Nuovo utente"
|
||||
|
||||
"Change permissions" "Cambiare autorita"
|
||||
|
||||
"select" "selezioni"
|
||||
|
||||
"update" "update"
|
||||
|
||||
"insert" "inserisci"
|
||||
|
||||
"rule" "regoli"
|
||||
|
||||
"Identification" "Identificatione"
|
||||
|
||||
"Owner ID" "ID dello proprieta"
|
||||
|
||||
"Has primary key ?" "Chiave primaria ?"
|
||||
|
||||
"Has rules ?" "Regoli definiti ?"
|
||||
|
||||
"Statistics" "Statistica"
|
||||
|
||||
"Number of tuples" "Numero righe"
|
||||
|
||||
"Number of pages" "Numero pagine"
|
||||
|
||||
"Index name" "Nome indici"
|
||||
|
||||
"Index fields" "Campi dello indice"
|
||||
|
||||
"Table OID" "Tabella OID"
|
||||
|
||||
}
|
|
@ -0,0 +1,525 @@
|
|||
array set Messages {
|
||||
|
||||
"Label" "Cimke"
|
||||
|
||||
"Save schema" "Séma mentése"
|
||||
|
||||
"Is unique ?" "Egyedi (UNIQUE) ?"
|
||||
|
||||
"Report builder" "Jelentés szerkesztõ"
|
||||
|
||||
"Criteria" "Feltételek"
|
||||
|
||||
"FATAL ERROR upgrading PgAccess table" "FATÁLIS HIBA keletkezett a PgAccess tábla frissitése közben"
|
||||
|
||||
"Save this query as a view" "Nézetként (VIEW) akarod elmenteni a lekérdezést?"
|
||||
|
||||
"Page header" "Oldal fejléc"
|
||||
|
||||
"Query name" "Lekérdezés név"
|
||||
|
||||
"Please select an object first!" "Elõször válassz egy objektumot!"
|
||||
|
||||
"Fields :" "Mezõk :"
|
||||
|
||||
"Name" "Név"
|
||||
|
||||
"File name" "Fájl név"
|
||||
|
||||
"Detail record" "Részletes bejegyzés"
|
||||
|
||||
"Auto-load the last opened database at startup" "Az utolsóként használt adatbázis automatikus nyitésa inditáskor"
|
||||
|
||||
"Maxvalue" "Maximális érték"
|
||||
|
||||
"Start value" "Kezdõérték"
|
||||
|
||||
"Report fields" "Jelentés mezõk"
|
||||
|
||||
"Test form" "Teszt kérdõiv (FORM)"
|
||||
|
||||
"Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Hiba a(z) '%s' nevû adatbázishoz kapcsolódás közben a(z) '%s' szerveren.\n\nPostgreSQL hibaüzenet:%s"
|
||||
|
||||
"No field type ?" "Nincs a mezõnek tipusa ?"
|
||||
|
||||
"User without name?" "Felhasználó név nélkül ?"
|
||||
|
||||
"You have to supply a name for this schema!" "Nevet kell adj ennek a sémának !"
|
||||
|
||||
"Last value" "Legutóbbi érték"
|
||||
|
||||
"Preferences" "Beállitások"
|
||||
|
||||
"View '%s' already exists!\nOverwrite ?" "A(z) '%s' nevû nézet (VIEW) már létezik!\n Felülirás ?"
|
||||
|
||||
"You have to select an index!" "Választanod kell egy indexet!"
|
||||
|
||||
"Field type" "Mezõtipus"
|
||||
|
||||
"Script name" "Szkript neve"
|
||||
|
||||
"Reload" "Újratölt"
|
||||
|
||||
"Remove table %s from query?" "Törölni akarod a(z) '%s' táblát ebbõl a lekérdezésbõl ?"
|
||||
|
||||
"SQL window" "SQL ablak"
|
||||
|
||||
"Allow user to create other users" "Engedély a felhasználónak új felhasználó készitésére"
|
||||
|
||||
"Delete current record ?" "Az aktuális bejegyzés törlése ?"
|
||||
|
||||
"List box" "Lista"
|
||||
|
||||
"Save to query builder" "Mentsd a lekérdezés szerkesztõbe"
|
||||
|
||||
"fixed width" "fix szélesség"
|
||||
|
||||
"Scripts" "Szkriptek"
|
||||
|
||||
"Yes" "Igen"
|
||||
|
||||
"Add label" "Adj hozzá cimkét"
|
||||
|
||||
"Sequence created!" "A szekvencia (SEQUENCE) elkészült!"
|
||||
|
||||
"Field information" "Mezõ információ"
|
||||
|
||||
"Design" "Tervezés"
|
||||
|
||||
"Field" "Mezõ"
|
||||
|
||||
"You have to supply an external file name!" "Meg kell adj egy külsõ fájlnevet!"
|
||||
|
||||
"Increment" "Növelés"
|
||||
|
||||
"No" "Nem"
|
||||
|
||||
"Form design" "Kérdõiv (FORM) tervezés"
|
||||
|
||||
"You must supply a return type!" "Szükség van visszatérési értékre!"
|
||||
|
||||
"Remove field from result ?" "A mezö törlése az eredménybõl ?"
|
||||
|
||||
"There is another object (a %s) with the same name.\nPlease change it!" "Van már ilyen nevû (%s) objektum!\nLégyszives változtasd meg!"
|
||||
|
||||
"This query has no commands?" "Ebben a lekérdezésben nincs parancs?"
|
||||
|
||||
"Execute query" "Lekérdezés futtatása"
|
||||
|
||||
"field cannot be null" "a mezõ nem lehet NULL"
|
||||
|
||||
"Help" "Súgó"
|
||||
|
||||
"Rename column" "Az oszlop átnevezése"
|
||||
|
||||
"Database" "Adatbázis"
|
||||
|
||||
"Information" "Információ"
|
||||
|
||||
"Close" "Zárás"
|
||||
|
||||
"Command" "Utasitás"
|
||||
|
||||
"Table" "Tábla"
|
||||
|
||||
"verify password" "jelszó ellenõrzés"
|
||||
|
||||
"Vacuum" "Porszivózás (VACUUM)"
|
||||
|
||||
"Default value" "Alapérték"
|
||||
|
||||
"Import" "Behozatal"
|
||||
|
||||
"Delete index" "Index törlés"
|
||||
|
||||
"Move up" "Mozgasd fel"
|
||||
|
||||
"index properties" "index tulajdonságok"
|
||||
|
||||
"check" "ellenõrzi"
|
||||
|
||||
"Create new table" "Új tábla készités"
|
||||
|
||||
"Visual query designer" "Lekérdezés tervezõ"
|
||||
|
||||
"Delete all" "Törölni mindet"
|
||||
|
||||
"You are going to delete\n\n %s \n\nProceed?" "Le fogod törölni az alábbit:\n\n %s \n\nFolytatod?"
|
||||
|
||||
"Schema name" "Séma neve"
|
||||
|
||||
"Error executing query" "Hiba a lekérdezés futtatása közben"
|
||||
|
||||
"Report name" "Jelentés neve"
|
||||
|
||||
"Add field" "Mezõ hozzáadás"
|
||||
|
||||
"Field name" "Mezõnév"
|
||||
|
||||
"FATAL ERROR searching for PgAccess system tables" "FATÁLIS HIBA a PgAccess rendszertáblák keresésénél"
|
||||
|
||||
"A big number of rows displayed in table view will take a lot of memory!" "A nézetnél (VIEW) kijelzendõ sorok nagy száma miatt sok memória fog lefoglalódni !"
|
||||
|
||||
"Preview" "Elõzetes nézet"
|
||||
|
||||
"Users" "Felhasználók"
|
||||
|
||||
"Owner" "Tulajdonos"
|
||||
|
||||
"Form's window internal name" "Kérdõiv (FORM) ablakának belsõ használatú neve"
|
||||
|
||||
"Sort field" "Mezõ rendezése"
|
||||
|
||||
"New name is the same as the old one!" "Az új név megegyezik a régivel!"
|
||||
|
||||
"Warning" "Figyelem"
|
||||
|
||||
"Suggestions at" "Javaslatok itt:"
|
||||
|
||||
"Functions" "Függvények"
|
||||
|
||||
"Schema" "Séma"
|
||||
|
||||
"Open" "Nyit"
|
||||
|
||||
"size" "méret"
|
||||
|
||||
"Delete" "Törlés"
|
||||
|
||||
"Returns" "Visszatér"
|
||||
|
||||
"Define new user" "Új felhasználó definiálása"
|
||||
|
||||
"Move down" "Mozgasd le"
|
||||
|
||||
"Design script" "Szkript tervezés"
|
||||
|
||||
"Check box" "Check box"
|
||||
|
||||
"FINAL WARNING" "UTOLSÓ FIGYELMEZTETÉS"
|
||||
|
||||
"Add table" "Tábla hozzáadás"
|
||||
|
||||
"Table viewer font" "Tábla nézõ betûkészlet"
|
||||
|
||||
"The field type is not specified!" "A mezõ tipusa nincs megadva!"
|
||||
|
||||
"Close test form" "Zárd le a teszt kérdõivet (FORM)"
|
||||
|
||||
"Export table" "Tábla kivitel"
|
||||
|
||||
"Add new index" "Ûj index hozzáadás"
|
||||
|
||||
"Left" "Bal"
|
||||
|
||||
"Field delimiter" "Mezõ határoló"
|
||||
|
||||
"Add formula" "Formula hozzáadás"
|
||||
|
||||
"Open database" "Adatbázis megnyitás"
|
||||
|
||||
"Return" "Visszatérés"
|
||||
|
||||
"Changed fonts may appear in the next working session!" "A megváltoztatott betûkészlet a következõ futtatásnál lesz látható!"
|
||||
|
||||
"Error" "Hiba"
|
||||
|
||||
"Enter a field name" "Adj meg egy mezõnevet !"
|
||||
|
||||
"field name" "Mezõnév"
|
||||
|
||||
"Forms" "Kérdõivek"
|
||||
|
||||
"Cannot add column" "Nem lehet oszlopot hozzáadni"
|
||||
|
||||
"Clean" "Törlés"
|
||||
|
||||
"Delete all objects ?" "Minden objektum törlése ?"
|
||||
|
||||
"Preferred language" "Választott nyelv"
|
||||
|
||||
"Execute SQL" "SQL futtatás"
|
||||
|
||||
"Sequences" "Szekvenciák"
|
||||
|
||||
"Button" "Gomb"
|
||||
|
||||
"Language" "Nyelv"
|
||||
|
||||
"Query '%s' was not found!" "A(z) '%s' nevû lekérdezés nem található!"
|
||||
|
||||
"Object" "Objektum"
|
||||
|
||||
"Font fixed" "Fix betûkészlet"
|
||||
|
||||
"Table name" "Táblanév"
|
||||
|
||||
"Export" "Kivitel"
|
||||
|
||||
"Change user" "Felhasználócsere"
|
||||
|
||||
"You must give object a new name!" "Az objektumnak új nevet kell adjál!"
|
||||
|
||||
"Query" "Lekérdezés"
|
||||
|
||||
"User name" "Felhasználónév"
|
||||
|
||||
"Font normal" "Normális betûkészlet"
|
||||
|
||||
"Import table" "Tábla bevitel"
|
||||
|
||||
"Toolbar" "Eszközpult"
|
||||
|
||||
"Radio btn" "Rádiógomb"
|
||||
|
||||
"You must supply a name for this function!" "Hiányzik a függvény neve!"
|
||||
|
||||
"You have to select index fields!" "Az index mezõket kell választanod!"
|
||||
|
||||
"Constraint" "Kényszer (CONSTRAINT)"
|
||||
|
||||
"The script must have a name" "Hiányzik a szkript neve"
|
||||
|
||||
"Save" "Mentés"
|
||||
|
||||
"Exit" "Kilépés"
|
||||
|
||||
"Inherits" "örökli"
|
||||
|
||||
"Delete field" "Mezõ törlés"
|
||||
|
||||
"About" "A programról"
|
||||
|
||||
"Empty field name ?" "Nom de champ inexistant ?"
|
||||
|
||||
"All report information will be deleted.\n\nProceed ?" "Toutes les informations de l'état vont être détruites\n\nContinuer ?"
|
||||
|
||||
"Host" "Szerver"
|
||||
|
||||
"vacuuming database %s ..." "A(z) %s adatbázis porszivózása ..."
|
||||
|
||||
"Indexes defined" "Definiált indexek"
|
||||
|
||||
"You must specify field size!" "Hiányzik a mezõméret!"
|
||||
|
||||
"Schema '%s' already exists!" "A(z) '%s' schéma már létezik!"
|
||||
|
||||
"There is another field with the same name: '%s'!\n\nReplace it ?" "Már van ilyen nevû mezõ: '%s'!\n\nFelülirás ?"
|
||||
|
||||
"Contents" "Tartalom"
|
||||
|
||||
"Views" "Nézetek"
|
||||
|
||||
"Variable" "Változó"
|
||||
|
||||
"Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Hiba a lekérdezés futtatása közben\n\n%s\n\nPostgreSQL hibaüzenet:\n%s\nPostgreSQL státusz:%s"
|
||||
|
||||
"Filter conditions" "Szûrõfeltételek"
|
||||
|
||||
"Error retrieving query definition" "Hiba a lekérdezés definiciójának betöltésénél"
|
||||
|
||||
"Error deleting view" "Hiba a nézet (VIEW) törlésénél"
|
||||
|
||||
"New" "Új"
|
||||
|
||||
"Tables" "Táblák"
|
||||
|
||||
"Create" "Elkészit"
|
||||
|
||||
"Forms need an internal name, only literals, low case" "A kérdõiveknek (FORM) kell egy belsõ név, csak kisbetûkkel"
|
||||
|
||||
"Do you want to save the form into the database?" "El akarod menteni a kérdõivet (FORM) az adatbázisba ?"
|
||||
|
||||
"Schema '%s' was not found!" "A(z) '%s' nevû séma nem található!"
|
||||
|
||||
"proportional" "megfelelõ"
|
||||
|
||||
"Function saved!" "A függvény elmentve!"
|
||||
|
||||
"with OIDs" "OID-ekkel"
|
||||
|
||||
"Table information" "Tábla információ"
|
||||
|
||||
"Error inserting new record" "Hiba az üj bejegyzés tárolásával"
|
||||
|
||||
"Column name '%s' already exists in this table!" "A(z) '%s' nevû oszlop már létezik ebben a táblában !"
|
||||
|
||||
"File" "Fájl"
|
||||
|
||||
"Your table has no fields!" "A táblában nincsenek mezõk!"
|
||||
|
||||
"Height" "Magasság"
|
||||
|
||||
"You will always get the latest version at:" "A legfrissebb verzió megszerezhetõ innen:"
|
||||
|
||||
"Form must have a name" "Hiányzik a kérdõiv (FORM) neve !"
|
||||
|
||||
"Password" "Jelszó"
|
||||
|
||||
"Valid until (date)" "Érvényes eddig (dátum)"
|
||||
|
||||
"Report source" "A jelentés forrása"
|
||||
|
||||
"Allow user to create databases" "Engedély a felhasználónak új adatbázis készitésére"
|
||||
|
||||
"Cancel" "Mégsem"
|
||||
|
||||
"Is clustered ?" "CLUSTER-elt ?"
|
||||
|
||||
"Add new column" "Új oszlop hozzáadás"
|
||||
|
||||
"Show SQL" "SQL parancsok"
|
||||
|
||||
"New name" "Új név"
|
||||
|
||||
"Table '%s' not found!" "A(z) '%s' nevû tábla nem található!"
|
||||
|
||||
"Form name" "Kérdõiv (FORM) név"
|
||||
|
||||
"Visual designer" "Tervezõ"
|
||||
|
||||
"You choose to delete index\n\n %s \n\nProceed?" "Biztos, hogy akarod törölni az alábbi indexet?\n\n %s"
|
||||
|
||||
"Error retrieving from" "Hiba a betöltésnél errõl a helyrõl"
|
||||
|
||||
"Save query definition" "A lekérdezés elmentése"
|
||||
|
||||
"A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Egy Tcl/Tk felület a\nPostgreSQL-hez\nKészitette: Constantin Teodorescu"
|
||||
|
||||
"Operation completed!" "Beavatkozás végrehajtva!"
|
||||
|
||||
"Max rows displayed in table/query view" "Maximális sorok száma a tábláknál/lekérdezéseknél"
|
||||
|
||||
"Passwords do not match!" "A jelszók nem egyeznek!"
|
||||
|
||||
"Rename" "Átnevezés"
|
||||
|
||||
"Entry" "Bejegyzés"
|
||||
|
||||
"Error retrieving schema definition" "Hiba a séma-definició betöltése közben"
|
||||
|
||||
"This is an action query!\n\nExecute it?" "Ez nem lekérdezés, hanem parancs.\nFuttatás ?"
|
||||
|
||||
"Error retrieving view definition for" "Hiba a nézet (VIEW) betöltése közben "
|
||||
|
||||
"options" "beállitások"
|
||||
|
||||
"Sequence '%s' not found!" "A(z) '%s' nevû szekvencia nem található!"
|
||||
|
||||
"Text" "Szöveg"
|
||||
|
||||
"Tcl error executing pg_exec %s\n\n%s" "Tcl hiba a pg_exec futtatásánál %s\n\n%s"
|
||||
|
||||
"Width" "Szélesség"
|
||||
|
||||
"You have to supply a name for this query!" "Hiányzik a lekérdezés neve!"
|
||||
|
||||
"Accessing data. Please wait ..." "Adatelérés. Kis türelmet ..."
|
||||
|
||||
"Report footer" "A jelentés alja"
|
||||
|
||||
"Parameters" "Paraméterek"
|
||||
|
||||
"Queries" "Lekérdezések"
|
||||
|
||||
"Query '%s' already exists!" "A(z) '%s' nevû lekérdezés már létezik!"
|
||||
|
||||
"Font bold" "Vastag betûkészlet"
|
||||
|
||||
"Query builder" "Lekérdezés szerkesztõ"
|
||||
|
||||
"Error defining view" "Hiba a nézet (VIEW) definiálásánál"
|
||||
|
||||
"Top" "Csúcs"
|
||||
|
||||
"You must supply a name for your table!" "Hiányzik a tábla neve!"
|
||||
|
||||
"Page footer" "A lap alja"
|
||||
|
||||
"Font italic" "Dõlt betûkészlet"
|
||||
|
||||
"Field name not entered!" "A mezõnév hiányzik!"
|
||||
|
||||
"Index name cannot be null!" "Az index nem lehet NULL!"
|
||||
|
||||
"Sort" "Rendezés"
|
||||
|
||||
"Import-Export table" "Tábla behozatal/kivitel"
|
||||
|
||||
"Point" "Pont"
|
||||
|
||||
"type" "tipus"
|
||||
|
||||
"You should supply a name for this sequence" "Hiányzik a szekvencia neve!"
|
||||
|
||||
"Remove link ?" "A kapcsolat törlése?"
|
||||
|
||||
"You have to supply a table name!" "Hiányzik a tábla neve!"
|
||||
|
||||
"Report header" "Jelentés fejléc"
|
||||
|
||||
"Attributes" "Attribútumok"
|
||||
|
||||
"Table '%s' already in schema" "A(z) '%s' tábla már szerepel a sémában!"
|
||||
|
||||
"Username" "Felhasználó név"
|
||||
|
||||
"Minvalue" "Minimális érték"
|
||||
|
||||
"Sequence name" "Szekvencianév"
|
||||
|
||||
"Define sequence" "Szekvencia definiálás"
|
||||
|
||||
"Function" "Függvény"
|
||||
|
||||
"Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "A rendezés és szûrés (még) nem megoldott a lekérdezéseknél!\n\nHasználd õket a lekérdezés definiciókban!"
|
||||
|
||||
"Reports" "Jelentések"
|
||||
|
||||
"Columns" "Oszlopok"
|
||||
|
||||
"Indexes" "Indexek"
|
||||
|
||||
"Permissions" "Engedélyek"
|
||||
|
||||
"not null" "nem NULL"
|
||||
|
||||
"Cluster index" "Index CLUSTER-elés"
|
||||
|
||||
"index columns" "indexelt oszlopok"
|
||||
|
||||
"Add user" "Felhasználó hozzáadás"
|
||||
|
||||
"Change permissions" "Engedélyek megváltoztatása"
|
||||
|
||||
"select" "olvasás"
|
||||
|
||||
"update" "frissités"
|
||||
|
||||
"insert" "tárolás"
|
||||
|
||||
"rule" "szabályok"
|
||||
|
||||
"Identification" "Azonositás"
|
||||
|
||||
"Owner ID" "Tulajdonos azonositó"
|
||||
|
||||
"Has primary key ?" "Van elsõdleges kulcsa ?"
|
||||
|
||||
"Has rules ?" "Vannak szabályok ?"
|
||||
|
||||
"Statistics" "Statisztika"
|
||||
|
||||
"Number of tuples" "Bejegyzések száma"
|
||||
|
||||
"Number of pages" "Oldalak száma"
|
||||
|
||||
"Index name" "Index név"
|
||||
|
||||
"Index fields" "Index mezõk"
|
||||
|
||||
"Table OID" "Tábla OID"
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,526 @@
|
|||
array set Messages {
|
||||
|
||||
"Label" "Etichetă"
|
||||
|
||||
"Save schema" "Salvează planul"
|
||||
|
||||
"Is unique ?" "Este index unic ?"
|
||||
|
||||
"Report builder" "Proiectare rapoarte"
|
||||
|
||||
"Criteria" "Conditie"
|
||||
|
||||
"FATAL ERROR upgrading PgAccess table" "EROARE FATALA la actualizarea tabelei PgAccess"
|
||||
|
||||
"Save this query as a view" "Salvează această selecţie ca o vedere"
|
||||
|
||||
"Page header" "Cap de pagină"
|
||||
|
||||
"Query name" "Nume selecţie"
|
||||
|
||||
"Please select an object first!" "Selectati mai intai un obiect!"
|
||||
|
||||
"Fields :" "Cîmpurile indexului"
|
||||
|
||||
"Name" "Nume"
|
||||
|
||||
"File name" "Nume fişier"
|
||||
|
||||
"Detail record" "Înregistrări"
|
||||
|
||||
"Auto-load the last opened database at startup" "Încarcă automat la lansare ultima bază deschisă"
|
||||
|
||||
"Maxvalue" "Valoare maximă"
|
||||
|
||||
"Start value" "Începe de la"
|
||||
|
||||
"Report fields" "Câmpuri disponibile"
|
||||
|
||||
"Test form" "Testează macheta"
|
||||
|
||||
"Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Eroare la conectarea la baza de date '%s' pe masina %s \n\nMesajul de eroare PostgreSQL:%s"
|
||||
|
||||
"No field type ?" "Tip cimp necompletat!"
|
||||
|
||||
"User without name?" "Utilizatorul asta n-ar si el un nume?"
|
||||
|
||||
"You have to supply a name for this schema!" "Trebuie sa dati un nume acestui plan!"
|
||||
|
||||
"Last value" "Ultima valoare"
|
||||
|
||||
"Preferences" "Preferinţe"
|
||||
|
||||
"View '%s' already exists!\nOverwrite ?" "Vederea '%s' mai exista!\nO suprainscriem ?"
|
||||
|
||||
"You have to select an index!" "Trebuie sa selectati un index!"
|
||||
|
||||
"Field type" "Tip cămp"
|
||||
|
||||
"Script name" "Nume script"
|
||||
|
||||
"Reload" "Reîncărcare"
|
||||
|
||||
"Remove table %s from query?" "Eliminati tabela %s din selectie?"
|
||||
|
||||
"SQL window" "Comenzi SQL executate"
|
||||
|
||||
"Allow user to create other users" "Are voie să creeze alţi utilizatori"
|
||||
|
||||
"Delete current record ?" "Stergeti inregistrarea curenta?"
|
||||
|
||||
"List box" "Listă"
|
||||
|
||||
"Save to query builder" "Salvează fraza SQL"
|
||||
|
||||
"fixed width" "lăţime fixă"
|
||||
|
||||
"Scripts" "Scripturi"
|
||||
|
||||
"Yes" "Da"
|
||||
|
||||
"Add label" "Adaugă etichetă"
|
||||
|
||||
"Sequence created!" "Secventa a fost creata!"
|
||||
|
||||
"Field information" "Informaţii despre câmpuri"
|
||||
|
||||
"Design" "Proiectează"
|
||||
|
||||
"Field" "Cimp"
|
||||
|
||||
"You have to supply an external file name!" "Trebuie sa introduceti numele fisierului extern!"
|
||||
|
||||
"Increment" "Increment"
|
||||
|
||||
"No" "Nu"
|
||||
|
||||
"Form design" "Proiectare machetă"
|
||||
|
||||
"You must supply a return type!" "Trebuie sa introduceti tipul rezultatului"
|
||||
|
||||
"Remove field from result ?" "Eliminati acest cimp din rezultat?"
|
||||
|
||||
"There is another object (a %s) with the same name.\nPlease change it!" "Mai este un obiect (%s) cu acelasi nume!\nSchimbati-l!"
|
||||
|
||||
"This query has no commands?" "Aceasta selectie nu are definitie?"
|
||||
|
||||
"Execute query" "Execută selecţia"
|
||||
|
||||
"field cannot be null" "obligatoriu de completat"
|
||||
|
||||
"Help" "Ajutor"
|
||||
|
||||
"Rename column" "Redenumeşte cîmp"
|
||||
|
||||
"Database" "Baza de date"
|
||||
|
||||
"Information" "Informaţii"
|
||||
|
||||
"Close" "Închide"
|
||||
|
||||
"Command" "Comandă"
|
||||
|
||||
"Table" "Tabela"
|
||||
|
||||
"verify password" "verifică parola"
|
||||
|
||||
"Vacuum" "Tasează"
|
||||
|
||||
"Default value" "Valoare implicită"
|
||||
|
||||
"Import" "Importă"
|
||||
|
||||
"Delete index" "Şterge index"
|
||||
|
||||
"Move up" "Urcă"
|
||||
|
||||
"index properties" "proprietăţi index"
|
||||
|
||||
"check" "verifică"
|
||||
|
||||
"Create new table" "Crează tabelă nouă"
|
||||
|
||||
"Visual query designer" "Proiectare vizuala a selectiilor"
|
||||
|
||||
"Delete all" "Şterge toate"
|
||||
|
||||
"You are going to delete\n\n %s \n\nProceed?" "Urmeaza sa stergeti obiectul\n\n %s \n\nConfirmati?"
|
||||
|
||||
"Schema name" "Numele planului"
|
||||
|
||||
"Error executing query" "Eroare la executia selectiei"
|
||||
|
||||
"Report name" "Nume raport"
|
||||
|
||||
"Add field" "Adaugă-l"
|
||||
|
||||
"Field name" "Nume câmp"
|
||||
|
||||
"FATAL ERROR searching for PgAccess system tables" "EROARE FATALA la citirea tabelelor necesare PgAccess"
|
||||
|
||||
"A big number of rows displayed in table view will take a lot of memory!" "Un număr mare de înregistrări încărcate va lua multă memorie"
|
||||
|
||||
"Preview" "Încercare"
|
||||
|
||||
"Users" "Utilizatori"
|
||||
|
||||
"Owner" "Aparţine lui"
|
||||
|
||||
"Form's window internal name" "Numele intern al machetei"
|
||||
|
||||
"Sort field" "Cîmpuri sortare"
|
||||
|
||||
"New name is the same as the old one!" "Numele nou este acelasi cu numele vechi!"
|
||||
|
||||
"Warning" "Avertisment"
|
||||
|
||||
"Suggestions at" "Sugestii la"
|
||||
|
||||
"Functions" "Funcţii"
|
||||
|
||||
"Schema" "Plan"
|
||||
|
||||
"Open" "Deschide"
|
||||
|
||||
"size" "mărime"
|
||||
|
||||
"Delete" "Şterge"
|
||||
|
||||
"Returns" "Întoarce"
|
||||
|
||||
"Define new user" "Definire utilizator nou"
|
||||
|
||||
"Move down" "Coboară"
|
||||
|
||||
"Design script" "Proiectează script"
|
||||
|
||||
"Check box" "Marcaj"
|
||||
|
||||
"FINAL WARNING" "AVERTISMENT FINAL"
|
||||
|
||||
"Add table" "Adaugă tabelă"
|
||||
|
||||
"Table viewer font" "Fonturi tabele"
|
||||
|
||||
"The field type is not specified!" "Tipul cimpului nu a fost specificat"
|
||||
|
||||
"Close test form" "Inchide macheta test"
|
||||
|
||||
"Export table" "Exportă tabelă"
|
||||
|
||||
"Add new index" "Adaugă index nou"
|
||||
|
||||
"Left" "Stânga"
|
||||
|
||||
"Field delimiter" "Delimitator cîmp"
|
||||
|
||||
"Add formula" "Adaugă formulă"
|
||||
|
||||
"Open database" "Deschide baza de date"
|
||||
|
||||
"Return" "Selectat"
|
||||
|
||||
"Changed fonts may appear in the next working session!" "Fonturile se vor schimba la următoarea lansare"
|
||||
|
||||
"Error" "Eroare"
|
||||
|
||||
"Enter a field name" "Trebuie sa introduceti numele cimpului"
|
||||
|
||||
"field name" "Nume cîmp"
|
||||
|
||||
"Forms" "Machete"
|
||||
|
||||
"Cannot add column" "Nu putem adauga cimpul"
|
||||
|
||||
"Clean" "Curăţă"
|
||||
|
||||
"Delete all objects ?" "Stergeti toate obiectele?"
|
||||
|
||||
"Preferred language" "Limba preferată"
|
||||
|
||||
"Execute SQL" "Execută selecţia"
|
||||
|
||||
"Sequences" "Secvenţe"
|
||||
|
||||
"Button" "Buton"
|
||||
|
||||
"Language" "Limbaj"
|
||||
|
||||
"Query '%s' was not found!" "Definitia pentru selectia '%s' nu a fost gasita"
|
||||
|
||||
"Object" "Obiect"
|
||||
|
||||
"Font fixed" "Font fix"
|
||||
|
||||
"Table name" "Nume tabelă"
|
||||
|
||||
"Export" "Exportă"
|
||||
|
||||
"Change user" "Modificare date utilizator"
|
||||
|
||||
"You must give object a new name!" "Trebuie sa introduceti totusi numele nou"
|
||||
|
||||
"Query" "Query"
|
||||
|
||||
"User name" "Nume utilizator"
|
||||
|
||||
"Font normal" "Font normal"
|
||||
|
||||
"Import table" "Importă tabelă"
|
||||
|
||||
"Toolbar" "Scule"
|
||||
|
||||
"Radio btn" "Selector"
|
||||
|
||||
"You must supply a name for this function!" "Trebuie sa introduceti un nume pentru aceasta functie"
|
||||
|
||||
"You have to select index fields!" "Trebuie sa selectati cimpurile indexului!"
|
||||
|
||||
"Constraint" "Cerinţe"
|
||||
|
||||
"The script must have a name" "Script-ul ar trebui sa aiba un nume"
|
||||
|
||||
"Save" "Salvează"
|
||||
|
||||
"Exit" "Terminare"
|
||||
|
||||
"Inherits" "Strămoşi"
|
||||
|
||||
"Delete field" "Şterge cîmp"
|
||||
|
||||
"About" "Despre"
|
||||
|
||||
"Empty field name ?" "Nume cimp necompletat"
|
||||
|
||||
"All report information will be deleted.\n\nProceed ?" "Toate obiectele din raport vor fi sterse!\n\nSinteti de acord?"
|
||||
|
||||
"Host" "Maşina"
|
||||
|
||||
"vacuuming database %s ..." "Tasăm baza de date %s ..."
|
||||
|
||||
"Indexes defined" "Indecşi definiţi"
|
||||
|
||||
"You must specify field size!" "Marimea cimpului trebuie specificata"
|
||||
|
||||
"Schema '%s' already exists!" "Schema '%s' exista deja!"
|
||||
|
||||
"There is another field with the same name: '%s'!\n\nReplace it ?" "Mai exista un cimp cu acelasi nume: '%s'!\n\nIl inlocuim cu descrierea noua?"
|
||||
|
||||
"Contents" "Conţinut"
|
||||
|
||||
"Views" "Vederi"
|
||||
|
||||
"Variable" "Variabilă"
|
||||
|
||||
"Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Eroare la executia selectiei:\n\n%s\n\nMesaj de eroare PostgreSQL:\n%s\nStare:%s"
|
||||
|
||||
"Filter conditions" "Condiţii de filtrare"
|
||||
|
||||
"Error retrieving query definition" "Eroare la citirea definitiei pentru selectie"
|
||||
|
||||
"Error deleting view" "Eroare la stergerea vederii"
|
||||
|
||||
"New" "Nou"
|
||||
|
||||
"Tables" "Tabele"
|
||||
|
||||
"Create" "Crează"
|
||||
|
||||
"Forms need an internal name, only literals, low case" "Machetele au nevoie de un nume intern, doar litere mici"
|
||||
|
||||
"Do you want to save the form into the database?" "Vrei sa salvezi descrierea machetei in baza de date?"
|
||||
|
||||
"Schema '%s' was not found!" "Schema '%s' nu a fost gasita!"
|
||||
|
||||
"proportional" "proporţional"
|
||||
|
||||
"Function saved!" "Functia a fost salvata!"
|
||||
|
||||
"with OIDs" "cu OID-uri"
|
||||
|
||||
"Table information" "Informaţii despre tabela"
|
||||
|
||||
"Error inserting new record" "Eroare la adaugarea noii inregistrari"
|
||||
|
||||
"Column name '%s' already exists in this table!" "Cimpul '%s' exista deja in tabela!"
|
||||
|
||||
"File" "Fişier"
|
||||
|
||||
"Your table has no fields!" "Tabela asta nu are nici un cimp ?"
|
||||
|
||||
"Height" "Înălţime"
|
||||
|
||||
"You will always get the latest version at:" "Întotdeauna ultima versiune se va găsi la"
|
||||
|
||||
"Form must have a name" "Macheta trebuie sa aiba si ea un nume!"
|
||||
|
||||
"Password" "Parolă"
|
||||
|
||||
"Valid until (date)" "Valabil pînă la"
|
||||
|
||||
"Report source" "Sursa raportului"
|
||||
|
||||
"Allow user to create databases" "Are voie să creeze baze de date"
|
||||
|
||||
"Cancel" "Abandon"
|
||||
|
||||
"Is clustered ?" "E conglomerat ?"
|
||||
|
||||
"Add new column" "Adaugă cîmp nou"
|
||||
|
||||
"Show SQL" "Arată comanda"
|
||||
|
||||
"New name" "Nume nou"
|
||||
|
||||
"Table '%s' not found!" "Tabela '%s' nu a fost gasita!"
|
||||
|
||||
"Form name" "Nume machetă"
|
||||
|
||||
"Visual designer" "Proiectare vizuală"
|
||||
|
||||
"You choose to delete index\n\n %s \n\nProceed?" "Urmeaza sa stergeti indexul\n\n %s \n\nConfirmati?"
|
||||
|
||||
"Error retrieving from" "Eroare la citirea tabelei"
|
||||
|
||||
"Save query definition" "Salvează definiţia selecţiei"
|
||||
|
||||
"A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "O interfaţă Tcl/Tk pentru\nPostgreSQL\nde Constantin Teodorescu"
|
||||
|
||||
"Operation completed!" "Operatiune terminata!"
|
||||
|
||||
"Max rows displayed in table/query view" "Număr maxim înregistrări afişate"
|
||||
|
||||
"Passwords do not match!" "Parolele nu se prea potrivesc!"
|
||||
|
||||
"Rename" "Redenumeşte"
|
||||
|
||||
"Entry" "Cîmp"
|
||||
|
||||
"Error retrieving schema definition" "Eroare la citirea definitiei pentru plan"
|
||||
|
||||
"This is an action query!\n\nExecute it?" "Aceasta este o comanda nu o selectie!\n\nO executam?"
|
||||
|
||||
"Error retrieving view definition for" "Eroare la citirea definitiei pentru vederea"
|
||||
|
||||
"options" "opţiuni"
|
||||
|
||||
"Sequence '%s' not found!" "Secventa '%s' nu a fost gasita!"
|
||||
|
||||
"Text" "Text"
|
||||
|
||||
"Tcl error executing pg_exec %s\n\n%s" "Eroare Tcl la executia comenzii %s\n\n%s"
|
||||
|
||||
"Width" "Lăţime"
|
||||
|
||||
"You have to supply a name for this query!" "Trebuie sa dati totusi un nume acestei selectii"
|
||||
|
||||
"Accessing data. Please wait ..." "Citim inregistrarile. Asteptati ..."
|
||||
|
||||
"Report footer" "Încheiere raport"
|
||||
|
||||
"Parameters" "Parametrii"
|
||||
|
||||
"Queries" "Selecţii"
|
||||
|
||||
"Query '%s' already exists!" "Selectia '%s' exista deja!"
|
||||
|
||||
"Font bold" "Font îngroşat"
|
||||
|
||||
"Query builder" "Proiectare selectii"
|
||||
|
||||
"Error defining view" "Eroare la definirea vederii"
|
||||
|
||||
"Top" "Sus"
|
||||
|
||||
"You must supply a name for your table!" "Trebuie sa introduceti un nume pentru aceasta tabela!"
|
||||
|
||||
"Page footer" "Încheiere pagină"
|
||||
|
||||
"Font italic" "Font înclinat"
|
||||
|
||||
"Field name not entered!" "Nu ati introdus numele cimpului!"
|
||||
|
||||
"Index name cannot be null!" "Numele indexului trebuie sa fie completat!"
|
||||
|
||||
"Sort" "Sortare"
|
||||
|
||||
"Import-Export table" "Import/Export tabela"
|
||||
|
||||
"Point" "Selectează"
|
||||
|
||||
"type" "tip"
|
||||
|
||||
"You should supply a name for this sequence" "Ar trebui sa dai un nume secventei"
|
||||
|
||||
"Remove link ?" "Stergeti aceasta legatura?"
|
||||
|
||||
"You have to supply a table name!" "Trebuie sa introduceti numele tabelei!"
|
||||
|
||||
"Report header" "Cap de raport"
|
||||
|
||||
"Attributes" "Atribute"
|
||||
|
||||
"Table '%s' already in schema" "Tabela '%s' exista deja pe plan!"
|
||||
|
||||
"Username" "Utilizator"
|
||||
|
||||
"Minvalue" "Valoare minimă"
|
||||
|
||||
"Sequence name" "Nume secvenţă"
|
||||
|
||||
"Define sequence" "Defineşte secvenţă"
|
||||
|
||||
"Function" "Funcţie"
|
||||
|
||||
"Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Sortari si filtrari nu se pot face din vizualizare selectii\n\nSpecificati-le in definitia selectiei!"
|
||||
|
||||
"Reports" "Rapoarte"
|
||||
|
||||
"primary key" "cheie primară"
|
||||
|
||||
"Back" "Inapoi"
|
||||
|
||||
"Columns" "Coloane"
|
||||
|
||||
"Indexes" "Indecşi"
|
||||
|
||||
"Permissions" "Drepturi"
|
||||
|
||||
"not null" "nenul"
|
||||
|
||||
"Cluster index" "Aglomerează indexul"
|
||||
|
||||
"index columns" "compunerea indexului"
|
||||
|
||||
"Add user" "Adaugă utilizator"
|
||||
|
||||
"Change permissions" "Schimbă drepturile de acces"
|
||||
|
||||
"select" "selecţii"
|
||||
|
||||
"update" "actualizări"
|
||||
|
||||
"insert" "inserări"
|
||||
|
||||
"rule" "reguli"
|
||||
|
||||
"Identification" "Identificare"
|
||||
|
||||
"Owner ID" "ID-ul proprietarului"
|
||||
|
||||
"Has primary key ?" "Are cheie primară ?"
|
||||
|
||||
"Has rules ?" "Are reguli definite ?"
|
||||
|
||||
"Statistics" "Statistice"
|
||||
|
||||
"Number of tuples" "Număr înregistrări"
|
||||
|
||||
"Number of pages" "Număr pagini"
|
||||
|
||||
"Index name" "Nume index"
|
||||
|
||||
"Index fields" "Coloanele indexului"
|
||||
|
||||
"Table OID" "OID-ul tabelei"
|
||||
}
|