Problemas comunes con PgAccess

Connection failure (Fallo de conexión)

Uno de los errores más comunes al principio es:

Error connecting database
Connection to database failed
connectDB() failed: Is the
postmaster running and
accepting TCP/IP (with -i)
connections at 'localhost' on
port '5432'?

Esto ocurre porque el "postmaster" (el backend de postgreSQL) no se comenzó con la opción -i. Generalmente sólo con añadir -i en la la linea de comandos que inicia el postmaster y reiniciando suele arreglar ésto.

Si tienes instalado el script preescrito para empezar postgreSQL automáticamente, esta opción está (actualmente) como comentario:

# PGOPTS="-i"

borra la almohadilla y el espacio y comenta la opción en blanco de arriba:

PGOPTS=""

User not defined (Usuario no definido)

Inicialmente, postgreSQL sólo tiene un usuario, postgres, y cualquier otro usuario que lance PgAccess obtendrá el mensaje:

Error connecting database
Connection to database failed
FATAL 1: SetUserId: user
'jim' is not in 'pg_shadow'

Mire en User Administration en PgAccess tutorial para una descripción de cómo crear usuarios.

libpgtcl not found (No se encuentra libpgtcl)

PgAccess necesita una librería de funciones llamada libpgtcl. Ésta debería estar disponible con la distribución postgreSQL, y generalmente estará en el lugar correcto cuando se instale postgreSQL. Primero comprueba que existe un fichero llamado libpgtcl.so (quizás con alguna extensión del numero de versión - o libpgtcl.dll en sistemas Windows) en tu sistema. Sino tendrás que bajarte la librería y quizas compilarla.

ftp://ftp.flex.ro/pub/pgaccess

es uno de los sitios de donde puedes bajarte libpgtcl precompilada para PgAccess.

Locale specific characters (Caracteres locales específicos)

Este problema ocurre con algunos caracteres especiales usados en diferentes paises porque PgAccess no usa fuentes `-ISO8859-1'.

Se propuso una solución por H.P.Heidinger ( hph@hphbbs.ruhr.de) y es muy simple.

Si miras en el archivo pgaccess.tcl, encontrarás las fuentes declaradas de esta manera:

$ grep -e '-font' -i pgaccess.tcl
-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* \
...

Debería acambiarse esta declaración por:

-font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-iso8859-1
...

Ésto es, insertando un asterisco entre el primer par de guiones, y cambiando los dos últimos asteriscos por iso8859 y 1 respectivamente.

Puedes altera el código fuente ejecutando el siguiente script :

#!/bin/sh
cp pgaccess.tcl pgaccess.tcl-org
cat pgaccess.tcl |\
sed -e's/\-\*\-\*\ /\-iso8859\-1\ /g' |\
sed -e's/\-\*\-\*\}/\-iso8859\-1}/g' |\
sed -e's/\-\*\-\*\]/\-iso8859\-1]/g' |\
sed -e's/\-\*\-\*$/\-iso8859\-1/g' |\
sed -e's/\-Clean\-/\-Fixed\-/g' |\
sed -e's/clean/fixed/g' >pgaccess.iso
mv pgaccess.iso pgaccess.tcl
chmod +x pgaccess.tcl

La última versión de PgAccess (1.0) permitirá al usuario decidir que fuentes usar mediante una ventana de diálogo "preferences (preferencias)"

Problemas con PostgreSQL 6.3.x

PgAccess 0.93 y posteriores podrían tener problemas trabajando con PostgreSQL 6.3.x. Se han realizado cambios en libpgtcl para evitarlos, pero si estás usando PostgreSQL 6.3.x, este parche te permitirá evitar los problemas.

En el procedimiento wpg_exec cambia la siguiente linea:

set pgsql(errmsg) [pg_result $pgsql(res) -error]

por ésta:

set pgsql(errmsg) "NO ERROR INFORMATION SUPPLIED"

y el programa funcionará. La única desventaja es que en algunas condiciones de error no obtendrás el mensaje de error apropiado de libpgtcl.

Volver al índice