1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-30 21:42:05 +03:00

Update to pgaccess 0.98.7.

This commit is contained in:
Bruce Momjian
2001-01-27 18:34:38 +00:00
parent 7fcd675dc3
commit 2a7ab4d916
23 changed files with 307 additions and 231 deletions

View File

@ -22,7 +22,7 @@ PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
PGACCESS 0.98.4 29 January 2000 PGACCESS 0.98.7 27 January 2001
================================ ================================
I dedicate this program to my little daughters Ana-Maria and Emilia and to my I dedicate this program to my little daughters Ana-Maria and Emilia and to my
wife for their understanding. I hope they will forgive me for spending so many wife for their understanding. I hope they will forgive me for spending so many
@ -32,8 +32,7 @@ time far from them.
1. How to INSTALL ? 1. How to INSTALL ?
You will need a Tcl/Tk package, at least Tcl 7.6 and Tk 4.2, recommended You will need a Tcl/Tk package greater than 8.0
Tcl/Tk 8.x
For Unix users, unpack the pgaccess-xxx.tar.gz archieve in you preferred For Unix users, unpack the pgaccess-xxx.tar.gz archieve in you preferred
directory (usually /usr/local). directory (usually /usr/local).

View File

@ -1,5 +1,5 @@
CREATE SEQUENCE "cities_id_seq" start 7 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ; CREATE SEQUENCE "cities_id_seq" start 7 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
SELECT nextval ('cities_id_seq'); SELECT nextval ('"cities_id_seq"');
CREATE TABLE "pga_queries" ( CREATE TABLE "pga_queries" (
"queryname" character varying(64), "queryname" character varying(64),
"querytype" character, "querytype" character,
@ -7,41 +7,50 @@ CREATE TABLE "pga_queries" (
"querytables" text, "querytables" text,
"querylinks" text, "querylinks" text,
"queryresults" text, "queryresults" text,
"querycomments" text); "querycomments" text
);
CREATE TABLE "pga_forms" ( CREATE TABLE "pga_forms" (
"formname" character varying(64), "formname" character varying(64),
"formsource" text); "formsource" text
);
CREATE TABLE "pga_scripts" ( CREATE TABLE "pga_scripts" (
"scriptname" character varying(64), "scriptname" character varying(64),
"scriptsource" text); "scriptsource" text
);
CREATE TABLE "pga_reports" ( CREATE TABLE "pga_reports" (
"reportname" character varying(64), "reportname" character varying(64),
"reportsource" text, "reportsource" text,
"reportbody" text, "reportbody" text,
"reportprocs" text, "reportprocs" text,
"reportoptions" text); "reportoptions" text
);
CREATE TABLE "phonebook" ( CREATE TABLE "phonebook" (
"name" character varying(32), "name" character varying(32),
"phone_nr" character varying(16), "phone_nr" character varying(16),
"city" character varying(32), "city" character varying(32),
"company" bool, "company" bool,
"continent" character varying(16)); "continent" character varying(16)
);
CREATE TABLE "pga_layout" ( CREATE TABLE "pga_layout" (
"tablename" character varying(64), "tablename" character varying(64),
"nrcols" int2, "nrcols" int2,
"colnames" text, "colnames" text,
"colwidth" text); "colwidth" text
);
CREATE TABLE "pga_schema" ( CREATE TABLE "pga_schema" (
"schemaname" character varying(64), "schemaname" character varying(64),
"schematables" text, "schematables" text,
"schemalinks" text); "schemalinks" text
);
REVOKE ALL on "pga_schema" from PUBLIC; REVOKE ALL on "pga_schema" from PUBLIC;
GRANT ALL on "pga_schema" to PUBLIC; GRANT ALL on "pga_schema" to PUBLIC;
CREATE TABLE "cities" ( CREATE TABLE "cities" (
"id" int4 DEFAULT nextval ( '"cities_id_seq"' ) NOT NULL, "id" int4 DEFAULT nextval('cities_id_seq'::text) NOT NULL,
"name" character varying(32) NOT NULL, "name" character varying(32) NOT NULL,
"prefix" character varying(16) NOT NULL); "prefix" character varying(16) NOT NULL
);
REVOKE ALL on "cities" from PUBLIC; REVOKE ALL on "cities" from PUBLIC;
GRANT INSERT,SELECT,RULE on "cities" to "teo";
CREATE FUNCTION "getcityprefix" (int4 ) RETURNS varchar AS 'select prefix from cities where id = $1 ' LANGUAGE 'SQL'; CREATE FUNCTION "getcityprefix" (int4 ) RETURNS varchar AS 'select prefix from cities where id = $1 ' LANGUAGE 'SQL';
COPY "pga_queries" FROM stdin; COPY "pga_queries" FROM stdin;
Query that can be saved as view S select * from phonebook where continent='usa' \N \N \N \N Query that can be saved as view S select * from phonebook where continent='usa' \N \N \N \N

View File

@ -10,30 +10,11 @@
Download</h2> Download</h2>
<hr> <hr>
<br>The primary site for PgAccess downloads is: <br>The primary site for PgAccess download is:
<ul><a href="ftp://ftp.flex.ro/pub/pgaccess">ftp://ftp.flex.ro/pub/pgaccess</a> <ul><a href="ftp://ftp.flex.ro/pub/pgaccess">ftp://ftp.flex.ro/pub/pgaccess</a>
<ul> <ul>
<li> <li><a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.7.tar.gz">Unix tar.gz file</a></li>
<a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.5.tar.gz">Unix tar.gz <li><a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.7.zip">Windows ZIP file</a></li>
file</a></li>
<li>
<a href="ftp://ftp.flex.ro/pub/pgaccess/pgaccess-0.98.5.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.5.tar.gz">Unix tar.gz
file</a></li>
<li>
<a href="ftp://speedy.flex.ro/pub/pgaccess/pgaccess-0.98.5.zip">Windows .zip
file</a></li>
</ul> </ul>
</ul> </ul>

View File

@ -14,7 +14,7 @@ PgAccess has been written by <a href="mailto:teo@flex.ro">Constantin Teodorescu<
using Visual Tcl, the best tool for developing Tcl/Tk applications I've using Visual Tcl, the best tool for developing Tcl/Tk applications I've
ever seen. ever seen.
<p><b>Last version</b> <p><b>Last version</b>
<br>Last stable version is 0.98.5 , released on 30 March 2000. Read <a href="whatsnew.html">what's <br>Last stable version is 0.98.7 , released on 27 January 2001. Read <a href="whatsnew.html">what's
new</a> . new</a> .
<p><b>Portability issues</b> <p><b>Portability issues</b>
<br>PgAccess is available for every platform where PostgreSQL was ported <br>PgAccess is available for every platform where PostgreSQL was ported
@ -27,9 +27,7 @@ on :
<br>- HPUX <br>- HPUX
<br>- Irix <br>- Irix
<br>- Windows 95,98,NT <br>- Windows 95,98,NT
<p>PgAccess needs Tcl/Tk versions 8.0.x and higher thought PgAccess. For <p>PgAccess needs Tcl/Tk versions 8.0.x and higher. For win32 platforms there are some special DLL's that have to be downloaded and installed, more information <a href="win32.html">here</a>.
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>. <p>PgAccess is protected by the following <a href="copyright.html">copyright</a>.
</body> </body>
</html> </html>

View File

@ -5,6 +5,24 @@
<meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; I; Linux 2.2.14 i586) [Netscape]"> <meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; I; Linux 2.2.14 i586) [Netscape]">
</head> </head>
<body bgcolor="#FEFEDF"> <body bgcolor="#FEFEDF">
<b>27 January 2001 - PgAccess 0.98.7</b>
<ul>
<li>
Fixed table creation when all columns are inherited and no new columns are added
</li>
<li>
Geometry improvements in diagram definition
</li>
<li>
added DLL's for Win32, Tcl/Tk 8.3.x and PostgreSQL 7.x
</li>
</ul>
<b>1 May 2000 - PgAccess 0.98.6</b>
<ul>
<li>
fixed a ugly bug in forms, query opening procedure</li>
</ul>
<b>30 March 2000 - PgAccess 0.98.5</b> <b>30 March 2000 - PgAccess 0.98.5</b>
<ul> <ul>
<li> <li>

View File

@ -803,6 +803,7 @@ switch $PgAcVar(fdobj,$item,class) {
set DataControlVar($base.$name,recno) 0 set DataControlVar($base.$name,recno) 0
set DataControlVar($base.$name,nrecs) \[pg_result \$res -numTuples\] set DataControlVar($base.$name,nrecs) \[pg_result \$res -numTuples\]
setCursor NORMAL setCursor NORMAL
pg_result \$res -clear
}" }"
namespace eval ::DataControl($base.$name) "proc setSQL {sqlcmd} { namespace eval ::DataControl($base.$name) "proc setSQL {sqlcmd} {
global DataControlVar global DataControlVar

View File

@ -18,7 +18,7 @@ CREATE DATABASE name \[ WITH LOCATION = 'dbpath' \]
" {} "CREATEDB" {italic} " " {} "CREATEDB" {italic} "
Message returned if the command completes successfully. Message returned if the command completes successfully.
" {} "NOTICE: createdb: database \"name\" already exists." {italic} " " {} "WARN: createdb: database \"name\" already exists." {italic} "
This occurs if database specified already exists. This occurs if database specified already exists.
" {} "ERROR: Unable to create database directory directory" {italic} " " {} "ERROR: Unable to create database directory directory" {italic} "

View File

@ -17,7 +17,7 @@ VACUUM \[ VERBOSE \] ANALYZE \[ table \[ (column \[, ...\] ) \] \]
Prints a detailed vacuum activity report for each table. Prints a detailed vacuum activity report for each table.
" {} "ANALYZE" {italic} " " {} "ANALYZE" {italic} "
Updates column statistics used by the optimizer to determine the most efficient way to execute a query. The statistics represent the dispersion of the data in each column. This information is valuable when several execution paths are possible. Updates column statistics used by the optimizer to determine the most efficient way to execute a query. The statistics represent the disbursion of the data in each column. This information is valuable when several execution paths are possible.
" {} "table" {italic} " " {} "table" {italic} "
The name of a specific table to vacuum. Defaults to all tables. The name of a specific table to vacuum. Defaults to all tables.

View File

@ -346,7 +346,7 @@ array set Messages {
"File" "Soubor" "File" "Soubor"
"Your table has no fields!" "Tabulka nem<65> polo<6C>ky!" "Your table has no columns!" "Tabulka nem<65> polo<6C>ky!"
"Height" "V<><56>ka" "Height" "V<><56>ka"

View File

@ -346,7 +346,7 @@ array set Messages {
"File" "Datei" "File" "Datei"
"Your table has no fields!" "Die Tabelle hat keine Felder." "Your table has no columns!" "Die Tabelle hat keine Felder."
"Height" "H<>he" "Height" "H<>he"

View File

@ -1,34 +1,34 @@
array set Messages { array set Messages {
"Label" "Etiquette" "Label" "Libell<EFBFBD>"
"Save schema" "Sauver sch<63>mas" "Save schema" "Sauver sch<63>ma"
"Is unique ?" "Est unique ?" "Is unique ?" "Est unique ?"
"Report builder" "Constructeur d'<27>tats" "Report builder" "Constructeur d'<27>tats"
"Criteria" "Crit<69>re" "Criteria" "Crit<69>res"
"FATAL ERROR upgrading PgAccess table" "ERREUR FATALE en actualisant la table PgAccess" "FATAL ERROR upgrading PgAccess table" "ERREUR FATALE en actualisant la table PgAccess"
"Save this query as a view" "Sauver cette requ<71>te comme vue ?" "Save this query as a view" "Sauver cette requ<71>te en tant que vue"
"Page header" "En-t<>te de page" "Page header" "En-t<>te de page"
"Query name" "Nom de requ<71>te" "Query name" "Nom de la requ<EFBFBD>te"
"Please select an object first!" "Selectionnez un objet d'abord" "Please select an object first!" "Veuillez s<>lectionner un objet d'abord"
"Fields :" "Le champs de index" "Fields :" "Champs :"
"Name" "Nom" "Name" "Nom"
"File name" "Nom du fichier" "File name" "Nom du fichier"
"Detail record" "Detail d'enregistrement" "Detail record" "D<EFBFBD>tail d'enregistrement"
"Auto-load the last opened database at startup" "Chargement automatique de la base au d<>marrage" "Auto-load the last opened database at startup" "Chargement automatique de la derni<EFBFBD>re base ouverte au d<>marrage"
"Maxvalue" "Valeur maximale" "Maxvalue" "Valeur maximale"
@ -38,9 +38,9 @@ array set Messages {
"Test form" "Tester formulaire" "Test form" "Tester formulaire"
"Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Erreur de liaison <20> la base de donn<6E>es '%s' pour machine %s \n\nMessage d'erreur PostgreSQL :%s" "Error trying to connect to database '%s' on host %s \n\nPostgreSQL error message:%s" "Erreur de liaison <20> la base de donn<6E>es '%s' pour machine %s \n\nMessage d'erreur PostgreSQL:%s"
"No field type ?" "Type champ inexistant ?" "No field type ?" "Type de champ inexistant ?"
"User without name?" "Cette utilisateur a-t-il un nom?" "User without name?" "Cette utilisateur a-t-il un nom?"
@ -50,27 +50,27 @@ array set Messages {
"Preferences" "Pr<50>f<EFBFBD>rences" "Preferences" "Pr<50>f<EFBFBD>rences"
"View '%s' already exists!\nOverwrite ?" "La vue '%s' existe d<>j<EFBFBD>!\n Ecraser ?" "View '%s' already exists!\nOverwrite ?" "La vue '%s' existe d<>j<EFBFBD> !\n <EFBFBD>craser ?"
"You have to select an index!" "Vous devez selectionner un index!" "You have to select an index!" "Vous devez s<EFBFBD>lectionner un index"
"Field type" "Type de champ" "Field type" "Type"
"Script name" "Nom du script" "Script name" "Nom du script"
"Reload" "Valider" "Reload" "Appliquer"
"Remove table %s from query?" "Eliminer table %s de la requ<71>te ?" "Remove table %s from query?" "<EFBFBD>nlever la table %s de la requ<71>te ?"
"SQL window" "Fen<65>tre SQL" "SQL window" "Fen<65>tre SQL"
"Allow user to create other users" "Peut cr<63>er d'autres utilisateurs" "Allow user to create other users" "Peut cr<63>er d'autres utilisateurs"
"Delete current record ?" "D<>truire enregistrement courant ?" "Delete current record ?" "D<>truire l'enregistrement courant ?"
"List box" "Liste" "List box" "Liste"
"Save to query builder" "Sauver le constructeur de requ<71>tes" "Save to query builder" "Entregistrer la requ<71>te"
"fixed width" "largeur de police fixe" "fixed width" "largeur de police fixe"
@ -78,13 +78,13 @@ array set Messages {
"Yes" "Oui" "Yes" "Oui"
"Add label" "Ajouter <EFBFBD>tiquette" "Add label" "Ajouter un libell<6C>"
"Sequence created!" "Le s<>quence avait <20>t<EFBFBD> cr<63><72>e" "Sequence created!" "La s<>quence a <20>t<EFBFBD> cr<63><72>e"
"Field information" "Information de champ" "Field information" "Information de champ"
"Design" "Editer" "Design" "<EFBFBD>diter"
"Field" "Champ" "Field" "Champ"
@ -94,23 +94,25 @@ array set Messages {
"No" "Non" "No" "Non"
"Form designer" "Cr<43>ateur graphique de formulaires"
"Form design" "Cr<43>ation du formulaire" "Form design" "Cr<43>ation du formulaire"
"You must supply a return type!" "Vous devez fournir un type de retour" "You must supply a return type!" "Vous devez fournir un type de retour"
"Remove field from result ?" "Eliminer champ du r<>sultat ?" "Remove field from result ?" "<EFBFBD>liminer le 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!" "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<71>te n'a pas de d<>finition?" "This query has no commands?" "Cette requ<71>te n'a pas de d<>finition ?"
"Execute query" "Execute requ<71>te" "Execute query" "Ex<EFBFBD>cuter la requ<71>te"
"field cannot be null" "champ ne peut <20>tre vide" "field cannot be null" "Ce champ ne peut <20>tre vide"
"Help" "Aide" "Help" "Aide"
"Rename column" "Renomme champ" "Rename column" "Renommer champ"
"Database" "Base de donn<6E>es" "Database" "Base de donn<6E>es"
@ -122,11 +124,11 @@ array set Messages {
"Table" "Table" "Table" "Table"
"verify password" "encore un fois" "verify password" "encore une fois"
"Vacuum" "Vider" "Vacuum" "Vider"
"Default value" "Valeur par defaut" "Default value" "Valeur par d<EFBFBD>faut"
"Import" "Importer" "Import" "Importer"
@ -140,27 +142,27 @@ array set Messages {
"Create new table" "Cr<43>ation de nouvelle table" "Create new table" "Cr<43>ation de nouvelle table"
"Visual query designer" "Cr<43>ateur visuel de requ<71>tes" "Visual query designer" "Cr<43>ateur graphique de requ<71>tes"
"Delete all" "D<>truire tous" "Delete all" "D<>truire"
"You are going to delete\n\n %s \n\nProceed?" "Vous allez d<>truire\n\n %s \n\nD'accord?" "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<63>ma" "Schema name" "Nom du sch<63>ma"
"Error executing query" "Erreur en ex<65>cutant la requ<71>te" "Error executing query" "Erreur en ex<65>cutant la requ<71>te"
"Report name" "Nom de l'<27>tat" "Report name" "Nom de l'<27>tat"
"Add field" "Ajout champ" "Add field" "Ajouter"
"Field name" "Nom de champ" "Field name" "Nom"
"FATAL ERROR searching for PgAccess system tables" "ERREUR FATALE en cherchant le syst<73>me de tables PgAccess" "FATAL ERROR searching for PgAccess system tables" "ERREUR FATALE en cherchant le syst<73>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" "A big number of rows displayed in table view will take a lot of memory!" "L'affichage d'un grand nombre de lignes prend beaucoup de m<>moire"
"Preview" "Pr<EFBFBD>-visualisation" "Preview" "Aper<EFBFBD>u"
"Users" "Utilisateurs" "Users" "Utilisateurs"
@ -168,7 +170,7 @@ array set Messages {
"Form's window internal name" "Le nom interne de la fen<65>tre de formulaire" "Form's window internal name" "Le nom interne de la fen<65>tre de formulaire"
"Sort field" "Trier champs" "Sort field" "Ordre champs"
"New name is the same as the old one!" "Le nouveau nom est le m<>me que l'ancien" "New name is the same as the old one!" "Le nouveau nom est le m<>me que l'ancien"
@ -188,33 +190,33 @@ array set Messages {
"Returns" "Retours" "Returns" "Retours"
"Define new user" "D<EFBFBD>finir nouvel utilisateur" "Define new user" "Cr<EFBFBD>er un nouvel utilisateur"
"Move down" "Descendre" "Move down" "Descendre"
"Design script" "Script de cr<63>ation" "Design script" "Cr<EFBFBD>er un script"
"Check box" "Case <20> cocher" "Check box" "Case <20> cocher"
"FINAL WARNING" "DERNIER AVERTISSEMENT" "FINAL WARNING" "DERNIER AVERTISSEMENT"
"Add table" "Ajouter table" "Add table" "Ajouter une table"
"Table viewer font" "Police de visualisateur de tables" "Table viewer font" "Police du visualisateur de tables"
"The field type is not specified!" "Le type de champ n'est pas sp<73>cifi<66>" "The field type is not specified!" "Le type de champ n'est pas sp<73>cifi<66>"
"Close test form" "Fermer test du formulaire" "Close test form" "Fermer le test du formulaire"
"Export table" "Exporter" "Export table" "Exporter"
"Add new index" "Ajout nouvel index" "Add new index" "Ajouter un nouvel index"
"Left" "Gauche" "Left" "Gauche"
"Field delimiter" "S<>parateur de champs" "Field delimiter" "S<>parateur champ"
"Add formula" "Ajouter formule" "Add formula" "Ajouter une formule"
"Open database" "Ouvre la base de donn<6E>es" "Open database" "Ouvre la base de donn<6E>es"
@ -224,24 +226,26 @@ array set Messages {
"Error" "Erreur" "Error" "Erreur"
"Enter a field name" "Entrez un nom de champ !" "Enter a field name" "Entrez un nom de champ"
"field name" "Nom de champ" "field name" "Nom du champ"
"Forms" "Formulaires" "Forms" "Formulaires"
"Cannot add column" "Ne peut ajouter de colonne" "Cannot add column" "Impossible d'ajouter une colonne"
"Clean" "Nettoyer" "Clean" "Nettoyer"
"Delete all objects ?" "D<>truire tous les objets" "Delete all objects ?" "D<>truire tous les objets ?"
"Preferred language" "Langage pr<70>f<EFBFBD>r<EFBFBD>" "Preferred language" "Langage pr<70>f<EFBFBD>r<EFBFBD>"
"Execute SQL" "Ex<45>cute SQL" "Execute SQL" "Ex<45>cuter SQL"
"Sequences" "S<>quences" "Sequences" "S<>quences"
"Sequence" "S<>quence"
"Button" "Bouton" "Button" "Bouton"
"Language" "Langage" "Language" "Langage"
@ -252,17 +256,17 @@ array set Messages {
"Font fixed" "Police fixe" "Font fixed" "Police fixe"
"Table name" "Nom de table" "Table name" "Nom de la table"
"Export" "Export" "Export" "Exporter"
"Change user" "Changer utilisateur" "Change user" "Changer utilisateur"
"You must give object a new name!" "Vous devez donner un nouveau nom" "You must give object a new name!" "Vous devez donner un nouveau nom."
"Query" "Requ<71>te" "Query" "Requ<71>te"
"User name" "Nom d'utilisateur" "User name" "Nom de l'utilisateur"
"Font normal" "Police normale" "Font normal" "Police normale"
@ -274,7 +278,7 @@ array set Messages {
"You must supply a name for this function!" "Vous devez fournir un nom pour la fonction" "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" "You have to select index fields!" "Vous devez s<EFBFBD>lectionner le champ pour l'index"
"Constraint" "Contrainte" "Constraint" "Contrainte"
@ -286,9 +290,9 @@ array set Messages {
"Inherits" "Source" "Inherits" "Source"
"Delete field" "D<>truire" "Delete field" "D<>truire champ"
"About" "A propos" "About" "<EFBFBD> propos"
"Empty field name ?" "Nom de champ inexistant ?" "Empty field name ?" "Nom de champ inexistant ?"
@ -296,7 +300,7 @@ array set Messages {
"Host" "Machine" "Host" "Machine"
"vacuuming database %s ..." "Vider base %s ..." "vacuuming database %s ..." "Vide la base %s ..."
"Indexes defined" "Index d<>finis" "Indexes defined" "Index d<>finis"
@ -304,53 +308,53 @@ array set Messages {
"Schema '%s' already exists!" "Le sch<63>ma '%s' existe d<>j<EFBFBD>!" "Schema '%s' already exists!" "Le sch<63>ma '%s' existe d<>j<EFBFBD>!"
"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?" "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" "Contents" "Contenu"
"Views" "Vues" "Views" "Vues"
"Variable" "Variable" "Variable" "Variable"
"Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Erreur en ex<65>cutant la requ<71>te\n\n%s\n\nMessage d'erreur PostgreSQL :\n%s \n Statut de PostgreSQL:%s" "Error executing query\n\n%s\n\nPostgreSQL error message:\n%s\nPostgreSQL status:%s" "Erreur en ex<65>cutant la requ<71>te\n\n%s\n\nMessage d'erreur PostgreSQL:\n%s \n Statut de PostgreSQL:%s"
"Filter conditions" "Conditions de filtre" "Filter conditions" "Conditions de filtre"
"Error retrieving query definition" "Erreur en retrouvant la d<>finition de la requ<71>te" "Error retrieving query definition" "Erreur en charchant la d<>finition de la requ<71>te"
"Error deleting view" "Erreur en d<>truisant la vue" "Error deleting view" "Erreur en d<>truisant la vue"
"New" "Nouveau" "New" "Cr<EFBFBD>er"
"Tables" "Tables" "Tables" "Tables"
"Create" "Cr<43>er" "Create" "Cr<43>er"
"Forms need an internal name, only literals, low case" "Les formulaires ont besoin d'un nom interne, seulement en lettres minuscules" "Forms need an internal name, only literals, low case" "Les formulaires ont besoin d'un nom interne, seulement en lettres alphab<EFBFBD>tiques minuscules"
"Do you want to save the form into the database?" "Voulez vous sauver le formulaire dans la base?" "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<63>ma '%s' n'a pas <20>t<EFBFBD> trouv<75>" "Schema '%s' was not found!" "Le sch<63>ma '%s' n'a pas <20>t<EFBFBD> trouv<75>"
"proportional" "Proportionnelle" "proportional" "proportionnelle"
"Function saved!" "Le fonction avait ete cr<63><72>e" "Function saved!" "La fonction a <20>t<EFBFBD> cr<63><72>e"
"with OIDs" "avec des OIDs" "with OIDs" "avec des OIDs"
"Table information" "Information de table" "Table information" "Informations sur la table"
"Error inserting new record" "Erreur en introduisant le nouvel enregistrement" "Error inserting new record" "Erreur en <EFBFBD>crivant le nouvel enregistrement"
"Column name '%s' already exists in this table!" "Le nom de colonne existe d<>j<EFBFBD> dans cette table !" "Column name '%s' already exists in this table!" "Le nom de colonne existe d<>j<EFBFBD> dans cette table !"
"File" "Fichier" "File" "Fichier"
"Your table has no fields!" "Cette table n'a pas de champ?" "Your table has no columns!" "Cette table n'a pas de champ !"
"Height" "Hauteur" "Height" "Hauteur"
"You will always get the latest version at:" "Le derniere version toujours <20>" "You will always get the latest version at:" "Derni<EFBFBD>re version disponible <20> :"
"Form must have a name" "Le formulaire doit avoir un nom !" "Form must have a name" "Le formulaire doit avoir un nom !"
@ -362,33 +366,33 @@ array set Messages {
"Allow user to create databases" "Peut cr<63>er une base" "Allow user to create databases" "Peut cr<63>er une base"
"Cancel" "Abandon" "Cancel" "Annuler"
"Is clustered ?" "Est group<75> ?" "Is clustered ?" "Est group<75> ?"
"Add new column" "Ajout nouveau champ" "Add new column" "Ajouter un nouveau champ"
"Show SQL" "Montrez le code SQL." "Show SQL" "Montrer SQL"
"New name" "Nouveau nom" "New name" "Nouveau nom"
"Table '%s' not found!" "Le table '%s' n'est pas trouv<EFBFBD>e" "Table '%s' not found!" "La table '%s' est introuvable."
"Form name" "Nom du formulaire" "Form name" "Nom du formulaire"
"Visual designer" "Cr<43>ateur visuel" "Visual designer" "Cr<43>ateur graphique"
"You choose to delete index\n\n %s \n\nProceed?" "Vous allez d<>truire index\n\n %s \n\nConfirmation?" "You choose to delete index\n\n %s \n\nProceed?" "Vous allez d<>truire l'index\n\n %s \n\nConfirmation ?"
"Error retrieving from" "Erreur en retrouvant..." "Error retrieving from" "Erreur en retrouvant"
"Save query definition" "Sauver la d<>finition de la requ<71>te" "Save query definition" "Sauver la d<>finition de la requ<71>te"
"A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Une Tcl/Tk interface pour\nPostgreSQL\npar Constantin Teodorescu" "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu" "Interface Tcl/Tk pour PostgreSQL\npar Constantin Teodorescu\nTraduction g.delafond@medsyn.fr"
"Operation completed!" "Op<4F>ration finie" "Operation completed!" "Op<4F>ration finie"
"Max rows displayed in table/query view" "Nombre maximal de colonnes affich<63>es dans la table/vue de requ<71>te" "Max rows displayed in table/query view" "Nombre maximal de lignes affich<63>es dans la table/vue de requ<71>te"
"Passwords do not match!" "Les mots de passe ne vont pas" "Passwords do not match!" "Les mots de passe ne vont pas"
@ -398,17 +402,17 @@ array set Messages {
"Error retrieving schema definition" "Erreur en retrouvant la d<>finition du sch<63>ma" "Error retrieving schema definition" "Erreur en retrouvant la d<>finition du sch<63>ma"
"This is an action query!\n\nExecute it?" "Ceci est une requ<71>te d'action !\nEx<45>cuter ?" "This is an action query!\n\nExecute it?" "Ceci est une requ<71>te d'action.\nEx<45>cuter ?"
"Error retrieving view definition for" "Erreur en lisant la d<>finition pour la vue" "Error retrieving view definition for" "Erreur en lisant la d<>finition pour la vue"
"options" "options" "options" "options"
"Sequence '%s' not found!" "Le s<>quence '%s' n'a pas <20>t<EFBFBD> trouv<75>e" "Sequence '%s' not found!" "La s<>quence '%s' n'a pas <20>t<EFBFBD> trouv<75>e"
"Text" "Texte" "Text" "Texte"
"Tcl error executing pg_exec %s\n\n%s" "Erreur Tcl en ex<65>cutant %s\n\n%s" "Tcl error executing pg_exec %s\n\n%s" "Erreur Tcl en ex<65>cutant pg_exec %s\n\n%s"
"Width" "Largeur" "Width" "Largeur"
@ -422,7 +426,7 @@ array set Messages {
"Queries" "Requ<71>tes" "Queries" "Requ<71>tes"
"Query '%s' already exists!" "La requ<71>te '%s' existe dej<65>!" "Query '%s' already exists!" "La requ<71>te '%s' existe dej<65> !"
"Font bold" "Police grasse" "Font bold" "Police grasse"
@ -432,7 +436,7 @@ array set Messages {
"Top" "Haut" "Top" "Haut"
"You must supply a name for your table!" "Vous devez introduire un nom pour cette table" "You must supply a name for your table!" "Vous devez fournir un nom pour cette table"
"Page footer" "Pied de page" "Page footer" "Pied de page"
@ -460,7 +464,7 @@ array set Messages {
"Attributes" "Attributs" "Attributes" "Attributs"
"Table '%s' already in schema" "Le table est d<>j<EFBFBD> dans le sch<63>ma" "Table '%s' already in schema" "La table '%s' est d<>j<EFBFBD> dans le sch<63>ma"
"Username" "Utilisateur" "Username" "Utilisateur"
@ -468,58 +472,114 @@ array set Messages {
"Sequence name" "Nom de s<>quence" "Sequence name" "Nom de s<>quence"
"Define sequence" "D<EFBFBD>finir la s<>quence" "Define sequence" "Cr<EFBFBD>er la s<>quence"
"Function" "Fonction" "Function" "Fonction"
"Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Tri et filtrage pas (encore) possible <20> partir des requ<71>tes!\n\nEntrez les dans la d<>finition de la requ<71>te SVP" "Sorting and filtering not (yet) available from queries!\n\nPlease enter them in the query definition!" "Tri et filtrage pas (encore) possibles <20> partir des requ<71>tes!\n\nEntrez les dans la d<>finition de la requ<71>te SVP."
"Reports" "Etats" "Reports" "<EFBFBD>tats"
"Columns" "Champs" "Columns" "Colonnes"
"Indexes" "Index" "Indexes" "Index"
"Permissions" "Permissions" "Table OID" "OID de la table"
"not null" "non vide" "Owner ID" "ID de l'utilisateur"
"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<72>taire"
"Has primary key ?" "A une cl<63> primaire ?" "Has primary key ?" "A une cl<63> primaire ?"
"Has rules ?" "A des r<>gles?" "Has rules ?" "Utilise des r<>gles ?"
"Number of tuples" "Nombre de multiplets"
"Number of pages" "Nombre de pages"
"index columns" "Colonnes d'index"
"Cluster index" "Grouper index"
"General" "G<>n<EFBFBD>ral"
"Statistics" "Statistiques" "Statistics" "Statistiques"
"Number of tuples" "Nombre des enregistrements"
"Number of pages" "Nombres des pages"
"Index name" "Nom d'index" "Index name" "Nom d'index"
"Index fields" "Champs d'index" "Index fields" "Champs d'index"
"Table OID" "OID de table" "select" "S<>lectionner"
"update" "Actualiser"
"insert" "Ins<6E>rer"
"rule" "R<>gle"
"Add user" "Ajouter un utilisateur"
"Change permissions" "Changer les droits"
"Comments" "Commentaires"
"You must supply the function language!" "Vous devez fournir le langage de la fonction"
"Database field" "Champ"
"Class" "Groupe"
"Font" "Police"
"Align" "Aligner"
"Foreground" "Avant-plan"
"Background" "Arri<72>re-plan"
"Border width" "Largeur de bordure"
"Width" "Largeur"
"Height" "Hauteur"
"Left" "Gauche"
"Top" "Haut"
"primary key" "Cl<43> primaire"
"Print" "Imprimer"
"Report preview" "Aper<65>u de l'<27>tat"
"The printed image in Postscript is in the file pgaccess-report.ps" "L'image imprim<69>e en postscript est dans le fichier pgaccess-report.ps"
"Delete current report object?" "D<>truire l'objet d'<27>tat en cours ?"
"Your query has been executed without error!" "Votre requ<71>te a <20>t<EFBFBD> ex<65>cut<75>e sans erreur"
"Layout info changed !\nRescanning..." "Informations de sortie chang<6E>es.\nRecharge..."
"Visual schema designer" "Cr<43>ateur graphique de sch<63>mas"
"Print to Postscript" "Imprimer en Postscript"
"Save Error: Unable to open '$fn' for writing\n$fid" "Erreur d'enregistrement : Impossible d'ouvrir '$fn' pour <20>crire\n$fid"
"Query result:%s" "R<>sultat de la requ<71>te %s"
"Loading maximum %s" "Charge au maximum %s"
"records..." "enregistrements..."
"Startup script" "Script de d<>marrage"
"Multiple ($nrlay) layout info found\n\nPlease report the bug!" "Informations multiples trouv<75>es dans ($nrlay) \n\n Veuillez reporter le bug"
"Table information - %s" "Informations sur la table - %s"
"Back" "Retour"
"Loading maximum %s records ..." "Charge au maximum %s enregistrements..."
} }

View File

@ -348,7 +348,7 @@ array set Messages {
"File" "File" "File" "File"
"Your table has no fields!" "La tabella non ha campi !" "Your table has no columns!" "La tabella non ha campi !"
"Height" "Altezza" "Height" "Altezza"

View File

@ -347,7 +347,7 @@ hiba
"File" "F<>jl" "File" "F<>jl"
"Your table has no fields!" "A t<>bl<62>ban nincsenek mez<65>k!" "Your table has no columns!" "A t<>bl<62>ban nincsenek mez<65>k!"
"Height" "Magass<73>g" "Height" "Magass<73>g"

View File

@ -348,7 +348,7 @@ array set Messages {
"File" "Arquivo" "File" "Arquivo"
"Your table has no fields!" "Sua tabela n<>o possui campos !" "Your table has no columns!" "Sua tabela n<>o possui campos !"
"Height" "Altura" "Height" "Altura"

View File

@ -346,7 +346,7 @@ array set Messages {
"File" "Fi<46>ier" "File" "Fi<46>ier"
"Your table has no fields!" "Tabela asta nu are nici un cimp ?" "Your table has no columns!" "Tabela asta nu are nici un cimp ?"
"Height" "<22>n<EFBFBD>l<EFBFBD>ime" "Height" "<22>n<EFBFBD>l<EFBFBD>ime"

View File

@ -347,7 +347,7 @@ array set Messages {
"File" "<22><><EFBFBD><EFBFBD>" "File" "<22><><EFBFBD><EFBFBD>"
"Your table has no fields!" "<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!" "Your table has no columns!" "<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!"
"Height" "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Height" "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"

View File

@ -346,7 +346,7 @@ array set Messages {
"File" "<22><><EFBFBD><EFBFBD>" "File" "<22><><EFBFBD><EFBFBD>"
"Your table has no fields!" "<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!" "Your table has no columns!" "<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!"
"Height" "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Height" "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"

View File

@ -372,7 +372,7 @@ formulario en la Base de Datos?"
"File" "Archivo" "File" "Archivo"
"Your table has no fields!" "<22>La tabla no tiene campos!" "Your table has no columns!" "<22>La tabla no tiene campos!"
"Height" "Alto" "Height" "Alto"

View File

@ -903,7 +903,7 @@ proc vTclWindow.pgaw:About {base} {
wm title $base [intlmsg "About"] wm title $base [intlmsg "About"]
label $base.l1 -borderwidth 3 -font -Adobe-Helvetica-Bold-R-Normal-*-*-180-*-*-*-*-* -relief ridge -text PgAccess label $base.l1 -borderwidth 3 -font -Adobe-Helvetica-Bold-R-Normal-*-*-180-*-*-*-*-* -relief ridge -text PgAccess
label $base.l2 -relief groove -text [intlmsg "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu"] label $base.l2 -relief groove -text [intlmsg "A Tcl/Tk interface to\nPostgreSQL\nby Constantin Teodorescu"]
label $base.l3 -borderwidth 0 -relief sunken -text {v 0.98.5} label $base.l3 -borderwidth 0 -relief sunken -text {v 0.98.7}
label $base.l4 -relief groove -text "[intlmsg {You will always get the latest version at:}] label $base.l4 -relief groove -text "[intlmsg {You will always get the latest version at:}]
http://www.flex.ro/pgaccess http://www.flex.ro/pgaccess

View File

@ -104,6 +104,7 @@ global PgAcVar
} }
option add *Entry.background #fefefe option add *Entry.background #fefefe
option add *Entry.foreground #000000 option add *Entry.foreground #000000
option add *Entry.Font $PgAcVar(pref,font_normal)
option add *Button.BorderWidth 1 option add *Button.BorderWidth 1
} }

View File

@ -39,6 +39,9 @@ global PgAcVar CurrentDB
} }
set PgAcVar(schema,links) $links set PgAcVar(schema,links) $links
drawLinks drawLinks
foreach {ulx uly lrx lry} [.pgaw:Schema.c bbox all] {
wm geometry .pgaw:Schema [expr $lrx+30]x[expr $lry+30]
}
} }
@ -100,7 +103,7 @@ global PgAcVar
.pgaw:Schema.c lower rect .pgaw:Schema.c lower rect
drawLinks drawLinks
.pgaw:Schema.c bind mov <Button-1> {Schema::dragStart %W %x %y} .pgaw:Schema.c bind mov <Button-1> {Schema::dragStart %W %x %y %s}
.pgaw:Schema.c bind mov <B1-Motion> {Schema::dragMove %W %x %y} .pgaw:Schema.c bind mov <B1-Motion> {Schema::dragMove %W %x %y}
bind .pgaw:Schema.c <ButtonRelease-1> {Schema::dragStop %x %y} bind .pgaw:Schema.c <ButtonRelease-1> {Schema::dragStop %x %y}
bind .pgaw:Schema <Button-1> {Schema::canvasClick %x %y %W} bind .pgaw:Schema <Button-1> {Schema::canvasClick %x %y %W}
@ -152,42 +155,45 @@ set PgAcVar(schema,nexty) $nexty
proc {deleteObject} {} { proc {deleteObject} {} {
global PgAcVar global PgAcVar
# Checking if there # Checking if there
set obj [.pgaw:Schema.c find withtag hili] set objs [.pgaw:Schema.c find withtag hili]
if {$obj==""} return set numobj [llength $objs]
if {$numobj == 0 } return
# Is object a link ? # Is object a link ?
if {[getTagInfo $obj link]=="s"} { foreach obj $objs {
if {[tk_messageBox -title [intlmsg Warning] -icon question -parent .pgaw:Schema -message [intlmsg "Remove link ?"] -type yesno -default no]=="no"} return if {[getTagInfo $obj link]=="s"} {
set linkid [getTagInfo $obj lkid] if {[tk_messageBox -title [intlmsg Warning] -icon question -parent .pgaw:Schema -message [intlmsg "Remove link ?"] -type yesno -default no]=="no"} return
set PgAcVar(schema,links) [lreplace $PgAcVar(schema,links) $linkid $linkid] set linkid [getTagInfo $obj lkid]
set PgAcVar(schema,links) [lreplace $PgAcVar(schema,links) $linkid $linkid]
.pgaw:Schema.c delete links
drawLinks
return
}
# Is object a table ?
set tablealias [getTagInfo $obj tab]
set tablename $PgAcVar(schema,tablename$tablealias)
if {"$tablename"==""} return
if {[tk_messageBox -title [intlmsg Warning] -icon question -parent .pgaw:Schema -message [format [intlmsg "Remove table %s from schema?"] $tablename] -type yesno -default no]=="no"} return
for {set i [expr [llength $PgAcVar(schema,links)]-1]} {$i>=0} {incr i -1} {
set thelink [lindex $PgAcVar(schema,links) $i]
if {($tablename==[lindex $thelink 0]) || ($tablename==[lindex $thelink 2])} {
set PgAcVar(schema,links) [lreplace $PgAcVar(schema,links) $i $i]
}
}
for {set i 0} {$i<$PgAcVar(schema,ntables)} {incr i} {
set temp {}
catch {set temp $PgAcVar(schema,tablename$i)}
if {"$temp"=="$tablename"} {
unset PgAcVar(schema,tablename$i)
unset PgAcVar(schema,tablestruct$i)
break
}
}
#incr PgAcVar(schema,ntables) -1
.pgaw:Schema.c delete tab$tablealias
.pgaw:Schema.c delete links .pgaw:Schema.c delete links
drawLinks drawLinks
return
}
# Is object a table ?
set tablealias [getTagInfo $obj tab]
set tablename $PgAcVar(schema,tablename$tablealias)
if {"$tablename"==""} return
if {[tk_messageBox -title [intlmsg Warning] -icon question -parent .pgaw:Schema -message [format [intlmsg "Remove table %s from query?"] $tablename] -type yesno -default no]=="no"} return
for {set i [expr [llength $PgAcVar(schema,links)]-1]} {$i>=0} {incr i -1} {
set thelink [lindex $PgAcVar(schema,links) $i]
if {($tablealias==[lindex $thelink 0]) || ($tablealias==[lindex $thelink 2])} {
set PgAcVar(schema,links) [lreplace $PgAcVar(schema,links) $i $i]
} }
} }
for {set i 0} {$i<$PgAcVar(schema,ntables)} {incr i} {
set temp {}
catch {set temp $PgAcVar(schema,tablename$i)}
if {"$temp"=="$tablename"} {
unset PgAcVar(schema,tablename$i)
unset PgAcVar(schema,tablestruct$i)
break
}
}
#incr PgAcVar(schema,ntables) -1
.pgaw:Schema.c delete tab$tablealias
.pgaw:Schema.c delete links
drawLinks
}
proc {dragMove} {w x y} { proc {dragMove} {w x y} {
@ -196,7 +202,7 @@ global PgAcVar
set dx [expr $x - $PgAcVar(draginfo,x)] set dx [expr $x - $PgAcVar(draginfo,x)]
set dy [expr $y - $PgAcVar(draginfo,y)] set dy [expr $y - $PgAcVar(draginfo,y)]
if {$PgAcVar(draginfo,is_a_table)} { if {$PgAcVar(draginfo,is_a_table)} {
$w move $PgAcVar(draginfo,tabletag) $dx $dy $w move dragme $dx $dy
drawLinks drawLinks
} else { } else {
$w move $PgAcVar(draginfo,obj) $dx $dy $w move $PgAcVar(draginfo,obj) $dx $dy
@ -206,7 +212,7 @@ global PgAcVar
} }
proc {dragStart} {w x y} { proc {dragStart} {w x y state} {
global PgAcVar global PgAcVar
PgAcVar:clean draginfo,* PgAcVar:clean draginfo,*
set PgAcVar(draginfo,obj) [$w find closest $x $y] set PgAcVar(draginfo,obj) [$w find closest $x $y]
@ -223,8 +229,12 @@ if {[getTagInfo $PgAcVar(draginfo,obj) table]=="header"} {
set taglist [.pgaw:Schema.c gettags $PgAcVar(draginfo,obj)] set taglist [.pgaw:Schema.c gettags $PgAcVar(draginfo,obj)]
set PgAcVar(draginfo,tabletag) [lindex $taglist [lsearch -regexp $taglist "^tab\[0-9\]*"]] set PgAcVar(draginfo,tabletag) [lindex $taglist [lsearch -regexp $taglist "^tab\[0-9\]*"]]
.pgaw:Schema.c raise $PgAcVar(draginfo,tabletag) .pgaw:Schema.c raise $PgAcVar(draginfo,tabletag)
.pgaw:Schema.c itemconfigure [.pgaw:Schema.c find withtag hili] -fill black if {$state == 0} {
.pgaw:Schema.c dtag [.pgaw:Schema.c find withtag hili] hili .pgaw:Schema.c itemconfigure hili -fill black
.pgaw:Schema.c dtag hili
.pgaw:Schema.c dtag dragme
}
.pgaw:Schema.c addtag dragme withtag $PgAcVar(draginfo,tabletag)
.pgaw:Schema.c addtag hili withtag $PgAcVar(draginfo,obj) .pgaw:Schema.c addtag hili withtag $PgAcVar(draginfo,obj)
.pgaw:Schema.c itemconfigure hili -fill blue .pgaw:Schema.c itemconfigure hili -fill blue
} else { } else {
@ -247,7 +257,11 @@ if {$este==""} return
# Re-establish the normal paint order so # Re-establish the normal paint order so
# information won't be overlapped by table rectangles # information won't be overlapped by table rectangles
# or link lines # or link lines
.pgaw:Schema.c lower $PgAcVar(draginfo,obj) if {$PgAcVar(draginfo,is_a_table)} {
.pgaw:Schema.c lower $PgAcVar(draginfo,tabletag)
} else {
.pgaw:Schema.c lower $PgAcVar(draginfo,obj)
}
.pgaw:Schema.c lower rect .pgaw:Schema.c lower rect
.pgaw:Schema.c lower links .pgaw:Schema.c lower links
set PgAcVar(schema,panstarted) 0 set PgAcVar(schema,panstarted) 0
@ -327,26 +341,22 @@ foreach link $PgAcVar(schema,links) {
# Source object is on the left of target object # Source object is on the left of target object
set x1 $sre set x1 $sre
set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2]
.pgaw:Schema.c create line $x1 $y1 [expr $x1+10] $y1 \
-tags [subst {links lkid$i}] -width 3
set x2 [lindex $dbbox 0] set x2 [lindex $dbbox 0]
set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2]
.pgaw:Schema.c create line [expr $x2-10] $y2 $x2 $y2 \ .pgaw:Schema.c create line $x1 $y1 [expr $x1+10] $y1 \
-tags [subst {links lkid$i}] -width 3 [expr $x1+10] $y1 [expr $x2-10] $y2 \
.pgaw:Schema.c create line [expr $x1+10] $y1 [expr $x2-10] $y2 \ [expr $x2-10] $y2 $x2 $y2 \
-tags [subst {links lkid$i}] -width 2 -tags [subst {links lkid$i}] -width 2
} else { } else {
# source object is on the right of target object # source object is on the right of target object
set x1 [lindex $sbbox 0] set x1 [lindex $sbbox 0]
set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2] set y1 [expr ([lindex $sbbox 1]+[lindex $sbbox 3])/2]
.pgaw:Schema.c create line $x1 $y1 [expr $x1-10] $y1 \
-tags [subst {links lkid$i}] -width 3
set x2 $dre set x2 $dre
set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2] set y2 [expr ([lindex $dbbox 1]+[lindex $dbbox 3])/2]
.pgaw:Schema.c create line $x2 $y2 [expr $x2+10] $y2 -width 3 \ .pgaw:Schema.c create line $x1 $y1 [expr $x1-10] $y1 \
-tags [subst {links lkid$i}] [expr $x1-10] $y1 [expr $x2+10] $y2 \
.pgaw:Schema.c create line [expr $x1-10] $y1 [expr $x2+10] $y2 \ $x2 $y2 [expr $x2+10] $y2 \
-tags [subst {links lkid$i}] -width 2 -tags [subst {links lkid$i}] -width 2
} }
incr i incr i
} }
@ -405,8 +415,8 @@ proc {linkClick} {x y} {
global PgAcVar global PgAcVar
set obj [.pgaw:Schema.c find closest $x $y 1 links] set obj [.pgaw:Schema.c find closest $x $y 1 links]
if {[getTagInfo $obj link]!="s"} return if {[getTagInfo $obj link]!="s"} return
.pgaw:Schema.c itemconfigure [.pgaw:Schema.c find withtag hili] -fill black .pgaw:Schema.c itemconfigure hili -fill black
.pgaw:Schema.c dtag [.pgaw:Schema.c find withtag hili] hili .pgaw:Schema.c dtag hili
.pgaw:Schema.c addtag hili withtag $obj .pgaw:Schema.c addtag hili withtag $obj
.pgaw:Schema.c itemconfigure $obj -fill blue .pgaw:Schema.c itemconfigure $obj -fill blue
} }
@ -457,8 +467,8 @@ if {$w==".pgaw:Schema.c"} {
set PgAcVar(schema,panobject) tables set PgAcVar(schema,panobject) tables
if {$canpan} { if {$canpan} {
if {[.pgaw:Schema.c find withtag hili]!=""} { if {[.pgaw:Schema.c find withtag hili]!=""} {
.pgaw:Schema.c itemconfigure [.pgaw:Schema.c find withtag hili] -fill black .pgaw:Schema.c itemconfigure hili -fill black
.pgaw:Schema.c dtag [.pgaw:Schema.c find withtag hili] hili .pgaw:Schema.c dtag hili
} }
.pgaw:Schema configure -cursor hand1 .pgaw:Schema configure -cursor hand1
@ -482,7 +492,7 @@ global PgAcVar
toplevel $base -class Toplevel toplevel $base -class Toplevel
wm focusmodel $base passive wm focusmodel $base passive
wm geometry $base 759x530+10+13 wm geometry $base 759x530+10+13
wm maxsize $base 1280 1024 wm maxsize $base [winfo screenwidth .] [winfo screenheight .]
wm minsize $base 1 1 wm minsize $base 1 1
wm overrideredirect $base 0 wm overrideredirect $base 0
wm resizable $base 1 1 wm resizable $base 1 1
@ -558,9 +568,6 @@ Window destroy .pgaw:Schema} -padx 2 -pady 3 -text [intlmsg Close]
entry $base.f.esn \ entry $base.f.esn \
-background #fefefe -borderwidth 1 -textvariable PgAcVar(schema,name) -background #fefefe -borderwidth 1 -textvariable PgAcVar(schema,name)
label $base.f.lsn -text [intlmsg {Schema name}] label $base.f.lsn -text [intlmsg {Schema name}]
place $base.c -x 5 -y 30 -width 748 -height 500 -anchor nw -bordermode ignore
place $base.f \
-x 5 -y 5 -width 748 -height 25 -anchor nw -bordermode ignore
pack $base.f.l \ pack $base.f.l \
-in .pgaw:Schema.f -anchor center -expand 0 -fill none -side left -in .pgaw:Schema.f -anchor center -expand 0 -fill none -side left
pack $base.f.e \ pack $base.f.e \
@ -580,6 +587,8 @@ Window destroy .pgaw:Schema} -padx 2 -pady 3 -text [intlmsg Close]
pack $base.f.lsn \ pack $base.f.lsn \
-in .pgaw:Schema.f -anchor center -expand 0 -fill none -side right -in .pgaw:Schema.f -anchor center -expand 0 -fill none -side right
pack $base.f -side top -anchor ne -expand 0 -fill x
pack $base.c -side bottom -fill both -expand 1
} }

View File

@ -1185,8 +1185,8 @@ if {$PgAcVar(nt,tablename)==""} then {
focus .pgaw:NewTable.etabn focus .pgaw:NewTable.etabn
return return
} }
if {[.pgaw:NewTable.lb size]==0} then { if {([.pgaw:NewTable.lb size]==0) && ($PgAcVar(nt,inherits)=="")} then {
showError [intlmsg "Your table has no fields!"] showError [intlmsg "Your table has no columns!"]
focus .pgaw:NewTable.e2 focus .pgaw:NewTable.e2
return return
} }

View File

@ -1,4 +1,4 @@
#! /bin/sh #!/bin/sh
PATH_TO_WISH='@WISH@' PATH_TO_WISH='@WISH@'
PGACCESS_HOME='@PGACCESSHOME@' PGACCESS_HOME='@PGACCESSHOME@'