Hi Esteban, 
Your problem looks familiar to me, 
and it seems you did not follow my advice. 
Anyway, here is a C sample program which works. 
It has nothing to do with wrong types, but with a 
missing connection, but see for yourself. 


/*
/opt/pgsql/bin/ecpg -o sampleprog01.c sampleprog01.sql
the compile command is for HP-UX - you have to adapt it for your machine 
cc -Aa +w1 -g -I/opt/pgsql/include/ -L/opt/pgsql/lib/ sampleprog01.c -Wl,-a,archive 
-lecpg -lpq -o sampleprog01

*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libpq-fe.h"

exec sql include sqlca;

void main()
{
EXEC SQL BEGIN DECLARE SECTION;
    char       *dbName;
    VARCHAR     tabla[50];    
EXEC SQL END DECLARE SECTION;
    int nrows;

    dbName = "template1";


EXEC SQL CONNECT TO :dbName ; 
printf("sqlca.sqlcode = %d \n", sqlca.sqlcode) ; 

EXEC SQL BEGIN ; 
EXEC SQL DECLARE T99 CURSOR FOR select relname from pg_class ; 

           EXEC SQL OPEN T99;
           
           for(nrows = 0;; nrows++) {
           
           EXEC SQL FETCH IN T99 INTO :tabla; 
           if ( sqlca.sqlcode != 0 )
            break;
           printf("%.*s \n", tabla.len, tabla.arr ); 
           
           } 
           
           printf("nrows = %d ; sqlca.sqlcode = %d \n", nrows, sqlca.sqlcode) ; 
           
           EXEC SQL CLOSE T99;
           
EXEC SQL END ; 
EXEC SQL DISCONNECT ; 

}

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to