Re: Cursores ECPG!

From: Carlos Rivas <carlos(dot)rivas(at)multicredit(dot)com(dot)gt>
To: Marcelo Diaz <marcelorauldiaz(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cursores ECPG!
Date: 2006-04-06 20:39:06
Message-ID: 44357C6A.5010501@multicredit.com.gt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Marcelo Diaz wrote:

>
> ESPERO TE SIRVA....... lo probe y anduvo joya
>
>
> #include "stdio.h"
>
> //DECLARACION DE VARIABLES COMPARTIDAS CON POSTGRESQL
> EXEC SQL BEGIN DECLARE SECTION;
>
> char dbname[50];
> int micar;
>
> EXEC SQL END DECLARE SECTION;
>
> //////////////////////////////////////// PARA DEBUG
> //EXEC SQL WHENEVER SQLERROR SQLPRINT;
> //EXEC SQL WHENEVER SQLWARNING SQLPRINT;
> //EXEC SQL WHENEVER NOT FOUND SQLPRINT;
> ///////////////////////////////////////
>
>
>
> main(int argc, char *argv[])
> {
>
> sprintf(dbname,"%s(at)192(dot)168(dot)1(dot)1:5432 <http://192.168.1.1:5432>",
> argv[1]);
>
> printf("cadena %s\n",dbname);
>
> EXEC SQL CONNECT TO :dbname USER postgres;
>
> EXEC SQL DECLARE micursor CURSOR FOR SELECT codigo FROM
> personal.puesto_laboral WHERE cod_empleado=5000;
> EXEC SQL OPEN micursor;
>
Esto si me sirve pero esto sirve para conectarme a la base de datos en
cualquier servidor, pero lo que necesito
es que donde haces FROM personal.puesto_laboral, el "personal." sea un
parametro , ya que entiendo que personal. es el nombre
de la base de datos.
o sea que yo necesitaria algo asi :

EXEC SQL DECLARE micursor CURSOR FOR SELECT codigo FROM
"parametronombrebasededatos".puesto_laboral WHERE cod_empleado=5000;
EXEC SQL OPEN micursor;

> while(1)
> {
>
> EXEC SQL FETCH FROM micursor INTO :micar;
> if(sqlca.sqlcode != 100)
> printf(" el codigo : %ld \n",micar);
> else
> break;
>
> }
>
>
> }
>
>
>
>
>
> On 4/6/06, Carlos Rivas <carlos(dot)rivas(at)multicredit(dot)com(dot)gt
> <mailto:carlos(dot)rivas(at)multicredit(dot)com(dot)gt>> wrote:
>
> Necesito saber como recibir como parametro el nombre de la base de
> datos
> para utilizarlo dentro de un cursor.
>
> Ejemplo:
>
> exec sql DECLARE C1 CURSOR FOR
> SELECT cuenta, apellido, nombre, saldo
> FROM base.datos
> WHERE <condicion>;
>
> En donde "base" es el nombre de la base de datos y "datos" el
> nombre de
> la tabla.
> Lo que necesito es que la "base" sea variable ya que no siempre
> necesito
> accesar a la misma base de datos.
>
> Gracias.
>
>
>
>
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2006-04-06 20:40:15 Re: Case Sensitive
Previous Message Marcelo Diaz 2006-04-06 20:27:24 Re: Cursores ECPG!