Fwd: Cursores ECPG!

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: Postgres Español <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Fwd: Cursores ECPG!
Date: 2006-04-07 23:30:33
Message-ID: c2d9e70e0604071630u48400ad4pd5ad80adf31a18b6@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

este me llego solo a mi, lo reenvio a la lista

---------- Forwarded message ----------
From: Marcelo Diaz <marcelorauldiaz(at)gmail(dot)com>
Date: Apr 7, 2006 6:15 AM
Subject: Re: [pgsql-es-ayuda] Cursores ECPG!
To: Jaime Casanova <systemguards(at)gmail(dot)com>

Gracias Jaime.

Carlos: Respecto de lo que queres hacer, esto seria lo que necesitas

EXEC SQL PREPARE query FROM :smt;

EXEC SQL DECLARE micursor CURSOR FOR query;

Donde smt es una variable compartida char a la cual la cargas con
alguna expresion de las siguientes : select, insert, update o delete
por ejemplo:

sprintf(smt,"select %s from %s where %s=%ld", campos, squema_tabla,
campo, puesto );

On 4/7/06, Jaime Casanova <systemguards(at)gmail(dot)com> wrote:
>
On 4/6/06, Carlos Rivas <carlos(dot)rivas(at)multicredit(dot)com(dot)gt > wrote:
> 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", 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;
>

no... personal es el nombre del esquema...

--
Atentamente,
Jaime Casanova

"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz

---------------------------(fin del mensaje)---------------------------
TIP 4: No hagas 'kill -9' a postmaster

--
Atentamente,
Jaime Casanova

"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MIGUEL CANCHAS 2006-04-07 23:49:23 RE: Ayuda
Previous Message Juan Carlos Villalobos C 2006-04-07 23:13:12 Re: Error "could not open relation 1663..."