| 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: | Whole Thread | Raw Message | 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
>
>
| 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! |