[pgsql-ayuda] ayuda con la API de C

From: Heron GALLEGOS <gallegos(at)csxxi(dot)net(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: [pgsql-ayuda] ayuda con la API de C
Date: 2000-11-09 20:32:30
Message-ID: Pine.NEB.4.21.0011091407420.3249-100000@antares.csxxi.sepc.edu.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Soy nuevo en esta lista... un saludo a todos.

Hice un programa ejemplo escrito en C para
ver el contenido de una tabla de una base de datos.
Mi programa funcionaba bien hasta que se me ocurro
abrir un archivo local para escribir cada renglon
leido de la tabla.

El programa viene al final de este mensaje.

Le pongo comentarios al "fopen/fprintf/fclose"
y el programa vuelve a trabajar bien.

Lo curioso del asunto es que cuando lo compilo
sin los comentarios y lo corro, el programa se sale
por la ruta PQconnectdb/PQstatus con los siguientes
mensajes

temporal=/tmp/sm_data.00777
info=dbname=horde host=mango.sub.dominio.edu.mx port=5432 user=hordemgr
password=hordemgr
Conexion a dbms falla
fe_sendauth: no password supplied

Todos los fprintf que tiene los puse para debuguear.

A alguien le ha pasado algo parecido?
Alguien sabe de restricciones para PQconnectdb ?

Reciban un saludo

Heron Gallegos
Centro Siglo XXI - Informatica Educativa
Saltillo, Coah., Mexico

NetBSD-1.5_BETA
PostgreSQL 7.0.2

#include <stdio.h>
#include <string.h>
#include <pgsql/libpq-fe.h>

#define HOST "mango.sub.dominio.edu.mx"
#define PORT "5432"
#define USER "hordemgr"
#define PASS "hordemgr"
#define DBNAME "horde"

#define FMT1 "dbname=%s host=%s port=%s user=%s password=%s"
#define QRY1 "SELECT sm_lhs, sm_rhs from sm_data"

main () {
PGconn *dbp;
PGresult *result;
FILE *fp;
char dbinfo [ 64 ], lhs [ 64 ], rhs [ 64 ], filnam [ 64 ];
int i, ntuples;

sprintf ( dbinfo, FMT1, DBNAME, HOST, PORT, USER, PASS );
sprintf ( filnam, "/tmp/sm_data.%05d", getpid ());

fprintf ( stdout, "temporal=%s\n", filnam );
fprintf ( stdout, "info=%s\n", dbinfo );

/*
if (( fp = fopen ( filnam, "w" )) == NULL ) {
fprintf ( stderr, "No puedo abrir %s\n", filnam );
exit ( 1 );
}
*/

dbp = PQconnectdb ( dbinfo );
if ( PQstatus ( dbp ) != CONNECTION_OK ) {
fprintf ( stderr, "Conexion a dbms falla\n" );
fprintf ( stderr, "%s\n", PQerrorMessage ( dbp ));
PQfinish ( dbp );
exit ( 1 );
}
result = PQexec ( dbp, QRY1 );
fprintf ( stdout, "status=%s\n", PQresStatus ( PQresultStatus ( result )));

if ( PQresultStatus ( result ) != PGRES_TUPLES_OK ) {
fprintf ( stderr, "QRY1 ha fallado\n" );
fprintf ( stderr, "%s\n", PQresStatus ( PQresultStatus ( result )));
PQclear ( result );
PQfinish ( dbp );
exit ( 1 );
}
ntuples = PQntuples ( result );
fprintf ( stdout, "Se leyeron %d tuples\n", ntuples );
for ( i = 0; i < ntuples; i++ ) {
strncpy ( lhs, PQgetvalue ( result, i, 0 ), 64 ); lhs [ 63 ] = 0;
strncpy ( rhs, PQgetvalue ( result, i, 1 ), 64 ); rhs [ 63 ] = 0;
trimsp ( lhs );
trimsp ( rhs );
fprintf ( stdout, "tuple %d\t", i );
fprintf ( stdout, "%s\t", lhs );
fprintf ( stdout, "%s\n", rhs );
/* fprintf ( fp, "%s:%s\n", lhs, rhs ); */
}
PQclear ( result );
/*
fclose ( fp );
*/

PQfinish ( dbp );
exit ( 0 );
}

trimsp ( char *s ) {
while ( *s ) s++;
s--;
while ( *s == ' ' ) *s-- = 0;
}

--------- 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 : unsubscribe pgsql-ayuda

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jesus Aneiros 2000-11-11 00:07:33 Re: [pgsql-ayuda] ayuda con la API de C
Previous Message Gunnar Wolf 2000-11-09 16:59:50 Re: [pgsql-ayuda] Seguridad en Computo 2000