Procedimientos almacenados en VFP9 con Postgres

326 views
Skip to first unread message

eap pupo

unread,
Jun 4, 2013, 8:55:09 AM6/4/13
to publice...@googlegroups.com
Hola Comunidad del Fox!

Necesito saber como se procede una vez hecho el procedimiento almacenado si guarda en la parte del sistema que se esté haciendo en el Visual Foxpro o en que parte se guarda en Postgres para ser llamado a ejecutarse, pues se dice que tiene mejor rendimiento desde el motor de BD, como en el SQL SERVER. En fin donde se coloca.

Saludos a todos los amigos del Fox.

Pupo




Carlos Salcedo

unread,
Jun 4, 2013, 9:03:55 AM6/4/13
to visual fox
Hola

Una pregunta para mayor claridad.

Ya tienes el Procedimiento creado en postgresql y lo que quieres es
llamarlo desde VFP o Necesitas saber donde y como se crea
para después llamarlo

Saludos
Carlos


Date: Tue, 4 Jun 2013 05:55:09 -0700
From: eap...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Procedimientos almacenados en VFP9 con Postgres

eap pupo

unread,
Jun 4, 2013, 9:11:37 AM6/4/13
to publice...@googlegroups.com
Gracias Carlos!

Aun no lo he creado pero si tienes un ejemplo me lo puedes facilitar, estoy iniciando VFp9 con postgres antes trabajaba con tablas nativas ya sabes, eran prg, pero todo lo relacionado con eso me interesa, si me puedes ayudar en lo que dices te lo agradecería eternamente.

Muchas gracias!

Pupo

eap pupo

unread,
Jun 4, 2013, 9:13:52 AM6/4/13
to publice...@googlegroups.com
Gracias Carlos!

Aun no lo he creado pero si tienes un ejemplo me lo puedes facilitar, estoy iniciando VFp9 con postgres antes trabajaba con tablas nativas ya sabes, eran prg, pero todo lo relacionado con eso me interesa, si me puedes ayudar en lo que dices te lo agradecería eternamente.

Muchas gracias!

Pupo

Carlos Salcedo

unread,
Jun 4, 2013, 9:20:11 AM6/4/13
to visual fox
Hola Pupo

Aca te dejo un ejemplo sencillo .
Si te fijas yo mando un parametro que se llama
control(es una manera de hacerlo) esto para
decirle que guarde o actualice

Espero te sirva

Saludos



-***************************
CREATE OR REPLACE FUNCTION ginscripcion(xcontrol character, xnombre character, xdocumento character, xf_nacimiento date, xiglesia integer)
  RETURNS character varying AS
$BODY$
 declare

 
    
BEGIN

    IF xcontrol = 'I' THEN
INSERT INTO inscritos(nombre,documento,f_nacimiento,iglesia)
VALUES (xnombre,xdocumento,xf_nacimiento,xiglesia);
    ELSE
--UPDATE extminist set cargo = xcargo,ministerio =xministerio where extminist.idextr = xidextr;
    END IF;
  

RETURN xcontrol;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION ginscripcion(character, character, character, date, integer)
  OWNER TO postgres;



Date: Tue, 4 Jun 2013 06:13:52 -0700
Subject: Re: [vfp] Procedimientos almacenados en VFP9 con Postgres
From: eap...@gmail.com
To: publice...@googlegroups.com

eap pupo

unread,
Jun 4, 2013, 9:22:14 AM6/4/13
to publice...@googlegroups.com
Muchas gracias por el vio tan rápido pero donde pongo ese sp, en VFP donde está el sistema o en que parte de postgres pues no es igual que SQL SERVER.

Saludos

Pupo

Carlos Salcedo

unread,
Jun 4, 2013, 9:35:44 AM6/4/13
to visual fox



Date: Tue, 4 Jun 2013 06:22:14 -0700
Funciones en Postgresql.docx

eap pupo

unread,
Jun 4, 2013, 9:53:59 AM6/4/13
to publice...@googlegroups.com
Me mandas la foto pero no entiendo nada donde pongo el procedimiento despues de creado en postgres no esta como en SQL SERVER que tiene su carpeta.

Carlos Salcedo

unread,
Jun 4, 2013, 10:00:59 AM6/4/13
to visual fox
Pupo

1.Lo primero que te recomiendo para que tengas éxito con postgresql
   es que manejes el hecho que no estas trabajando con SqlServer

2.Por lo anterior Postgresql no es de origen en su filosofía Windows, si no Unix
   es bueno que investigues sobre su manejo

3.en postresql lo que tu necesitas se llama Función 

4. Postgresql esta diseñado para ser un motor poderoso, pero debes conocerlo
  y aun mas importante, aprender a configurar y trabajarlo

5. Te recomiendo investigues mas a fondo sobre postgresql por que parece
     que no has investigado sobre el tema

Cual quier pregunta , a tus ordenes

Saludos
Carlos


Date: Tue, 4 Jun 2013 06:53:59 -0700

eap pupo

unread,
Jun 4, 2013, 10:06:28 AM6/4/13
to publice...@googlegroups.com
Muy bueno tus consejos lo haré así como dices, pero donde queda el procedimiento almacenado en este caso con VFP9.
Por casualidad se necesita Admin EMS para postgres que es como una consola?

Muchas gracias y por tu paciencia.

Pupo

eap pupo

unread,
Jun 4, 2013, 10:09:22 AM6/4/13
to publice...@googlegroups.com
También si algún documento o manual que me sirva por favor mandalo a mi direciòn. Gracias


El 4 de junio de 2013 07:00, Carlos Salcedo <caros...@hotmail.com> escribió:

Carlos Salcedo

unread,
Jun 4, 2013, 10:12:44 AM6/4/13
to visual fox
Pupo

simplemente lo llamas con un select, aca un ejemplo para llamar
una funcion(ginscritos) para guardar personas
***************************
sqlResult = SQLEXEC(mCnnBD, 'SELECT ginscritos(?xidl,?xdocumento,?xsexo,?xnombre,?xdireccion,?xtelefono1)

Saludos
Carlos


Date: Tue, 4 Jun 2013 07:06:28 -0700

eap pupo

unread,
Jun 4, 2013, 10:39:27 AM6/4/13
to publice...@googlegroups.com
Una duda, y disculpa que te haga perder el tiempo con un novato como yo, eso es un procedimiento almacenado? porque he visto otros tipos PRG y son mas largos, eso me parece una consulta. Otra cosa eso es lo que tu guardas en la carpeta functions que está arriba de las tablas que me mostraste en postgres?

Carlos Salcedo

unread,
Jun 4, 2013, 10:43:37 AM6/4/13
to visual fox
Pupo

Eso que tu ves, es la forma de llamar desde VFP a una funcion(Sp) 
es decir creo el SP(que en postgresql se llaman funciones)
y luego lo llamo como un select desde VFP, pasandole parámetros
Es decir lo que esta dentro del parentesis.

Saludos
Carlos


Date: Tue, 4 Jun 2013 07:39:27 -0700

Carlos Salcedo

unread,
Jun 4, 2013, 10:46:32 AM6/4/13
to visual fox
Pupo

Si quieres pasame el Script del create table y te ayudo

Saludos
Carlos


From: caros...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Procedimientos almacenados en VFP9 con Postgres
Date: Tue, 4 Jun 2013 09:43:37 -0500

eap pupo

unread,
Jun 4, 2013, 10:49:08 AM6/4/13
to publice...@googlegroups.com
Que paciente y dispuesto eres amigo por ayudar a los demas, eres cristiano?
te lo preparo, estoy haciendo un cosita pequeña te envio dentro de unos min.
Muchas gracias y que Dios te lo pague. Serás recompensado, de seguro.

eap pupo

unread,
Jun 4, 2013, 10:59:49 AM6/4/13
to publice...@googlegroups.com
Amén y igual para ti hermano.
Estoy preparando lo que me pediste para tener una idea de lo que quiero en el futuro, año 2014, se llama postgres y vfp9.

Gracias de todo corazón.
eso te lo envio dentro de un rato para cuando puedas.



El 4 de junio de 2013 07:57, Carlos Salcedo <caros...@hotmail.com> escribió:
Pupo

De lo que por gracia recibí, por gracia doy.

Bendito sea Cristo, que este grupo tiene una disposición
y disponibilidad para ayudar , yo mismo he sido beneficiario
de su gran y valiosa ayuda, por eso el poder ayudar a otros
es para mi un honor.

Bendiciones
Carlos


Date: Tue, 4 Jun 2013 07:49:08 -0700

eap pupo

unread,
Jun 4, 2013, 11:38:48 AM6/4/13
to publice...@googlegroups.com
Aquí lo que me pediste, dime si necesitas otra cosa.

Van 2 tablas.

La primera es cargos de trabajadores el indice es por el campo "codcar" y tiene el campo "descrip"
del cargo del trabajador.

La 2da tabla es "personal1" ahí se repite los trabajadores pues están en diferentes puestos y son códigos
distintos pero debe seleccionar se el campo "horas" y "tarifa" y crear un tercera tabla que sería así:

campos:

Tarje  --> tabla personal1
nombre --> tabla personal1
descrip --> ese campo está en la tabla "cargos"
importe --> es el resultado de la multiplicación de horas*tarifa pero de diferentes puestos
            pero en esta tabla es un solo trabajador con un solo importe.

Recuerda que la tabla personal se repite los trabajadores.

Necesito ese procedimiento almacenado para el pequeño protecto prueba.

Mil gracias y espero no sea complejo.



CREATE TABLE areas
(
  coarea character varying(3) NOT NULL,
  nombre character varying(20),
  CONSTRAINT area_key PRIMARY KEY (coarea)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE areas OWNER TO postgres;




CREATE TABLE cargos
(
  codcar character varying(3) NOT NULL,
  descrip character varying(30),
  CONSTRAINT codcargo PRIMARY KEY (codcar)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE cargos OWNER TO postgres;



CREATE TABLE personal1
(
  tarje character varying(3) NOT NULL,
  coarea character varying(2),
  codcar character varying(2),
  nombre character varying(30),
  horas numeric(6,1),
  tarifa numeric(8,5),
  CONSTRAINT tarjekey2 PRIMARY KEY (tarje)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE personal1 OWNER TO postgres;



El 4 de junio de 2013 07:57, Carlos Salcedo <caros...@hotmail.com> escribió:
Pupo

De lo que por gracia recibí, por gracia doy.

Bendito sea Cristo, que este grupo tiene una disposición
y disponibilidad para ayudar , yo mismo he sido beneficiario
de su gran y valiosa ayuda, por eso el poder ayudar a otros
es para mi un honor.

Bendiciones
Carlos


Date: Tue, 4 Jun 2013 07:49:08 -0700

eap pupo

unread,
Jun 4, 2013, 11:43:12 AM6/4/13
to publice...@googlegroups.com
se me olvidó decirte que la tabla resultado debe ir con el nombre de área, que al final son 3 tablas origen y una temp.


El 4 de junio de 2013 07:57, Carlos Salcedo <caros...@hotmail.com> escribió:
Pupo

De lo que por gracia recibí, por gracia doy.

Bendito sea Cristo, que este grupo tiene una disposición
y disponibilidad para ayudar , yo mismo he sido beneficiario
de su gran y valiosa ayuda, por eso el poder ayudar a otros
es para mi un honor.

Bendiciones
Carlos


Date: Tue, 4 Jun 2013 07:49:08 -0700

Analyzer

unread,
Jun 4, 2013, 11:46:59 AM6/4/13
to publice...@googlegroups.com
Eap pupo,

Dices que empiezas con Fox?.. Quizás este foro te pueda servir con tu aprendizaje.



Saludos!

Carlos Salcedo

unread,
Jun 4, 2013, 10:57:18 AM6/4/13
to visual fox
Pupo

De lo que por gracia recibí, por gracia doy.

Bendito sea Cristo, que este grupo tiene una disposición
y disponibilidad para ayudar , yo mismo he sido beneficiario
de su gran y valiosa ayuda, por eso el poder ayudar a otros
es para mi un honor.

Bendiciones
Carlos


Date: Tue, 4 Jun 2013 07:49:08 -0700
Reply all
Reply to author
Forward
0 new messages