Re[2]: [pgsql-ayuda] 4GL para PostgreSQL

From: Sferacarta Software <sferac(at)bo(dot)nettuno(dot)it>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx, David Prieto <davidp(at)sgth(dot)es>
Subject: Re[2]: [pgsql-ayuda] 4GL para PostgreSQL
Date: 1998-11-19 15:27:22
Message-ID: 10685.981119@bo.nettuno.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola David,

giovedì, 19 novembre 98, you wrote:

DP> Esa línea define una variable con la misma estructura que los registros
DP> de la tabla 'prueba'. Para eso, tiene que conectar con la base de datos
DP> que indiques en la linea 'database...' del programa .4gl (será
DP> hy4gl_test, seguramente). Prueba a conectar con esa base de datos con el
DP> psql (psql -d hy4gl_test) y a hacer un '\d prueba'. Eso debe darte la
DP> estructura de la tabla 'prueba' y es lo mismo que hace el compilador.

$ psql hy4gl_test -c '\d prueba'

Table = prueba
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| num | int4 | 4 |
+----------------------------------+----------------------------------+-------+

Hice este programa para veer se \d prueba funciona, pero' me da un error:

/* prueba.c */
#include <stdio.h>
#include "halt.h"
#include <libpq-fe.h>
#include "pginterface.h"

int main()
{
char attname[32], typname[32];
short int attlen;
connectdb("hy4gl_test", NULL, NULL, NULL, NULL);
doquery("BEGIN WORK");

/* esto es lo mismo que \d prueba y funciona */

doquery("DECLARE ch BINARY CURSOR FOR\
SELECT a.attname, t.typname, a.attlen\
FROM pg_class c, pg_attribute a, pg_type t\
WHERE c.relname = 'prueba'\
and a.attnum > 0\
and a.attrelid = c.oid\
and a.atttypid = t.oid");
doquery("FETCH ALL IN ch");
while (fetch(attname,typname,&attlen) != END_OF_TUPLES)
printf("Field: %s\nType: %s\nLength: %d\n",attname,typname,attlen);
doquery("CLOSE ch");
doquery("COMMIT WORK");

/*esto me da un error*/
doquery("\\d prueba");
disconnectdb();
return 0;
}

Este es el output:
$ prueba

Field: num
Type: int4
Length: 4
query error:
failed request: \d prueba

?Puede ser que "DEFINE reg RECORD LIKE prueba.*" da un error por el
mismo motivo ?

Yo estoy usando:

PostgreSQL : v6.4
Sistema op : Linux 2.0.34 ELF (Debian)
cpu : 586
model : Pentium 60/66
vendor_id : AuthenticAMD

He aqui de nuevo el mensaje... my username es postgres, ya probe' tambien con
davidp pero es lo mismo...

hy4gl V.0.6. (c)1998 David Prieto
------------------------------------------
52_select.4gl:3: No se puede conectar con la base de datos 'hy4gl_test'
FATAL: PQsetdb: Unable to determine a Postgres username!

Ideas ?

-Jose'-

--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : cancelacion pgsql-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sergi Martinez 1998-11-19 16:48:07 [pgsql-ayuda] Postgres y perl
Previous Message David Prieto 1998-11-19 12:54:58 Re: [pgsql-ayuda] 4GL para PostgreSQL