Ayuda con VFP con Posgres

130 views
Skip to first unread message

eap12...@gmail.com

unread,
Oct 18, 2016, 10:44:57 AM10/18/16
to Comunidad de Visual Foxpro en Español
Hola a todos!

Necesito ayuda, soy un principiante en la materia de VFP con Posgres alguien pudiera darme una ayuda con estas líneas estaría muy agradecido eternamente, he decido cambiar por este motor de BD.

A continuación.

***sobre VFP para Posgres

 

*** Pasar este pedazo de código hecho en VFP a posgresql como procedimiento almacenado.

 

Select sp00m6

 

 

SELECT sp00m7

INDEX ON tarje TAG sp00m7

GO TOP

 

 

                                         DO WHILE .not.eof()

 

 

STORE “” TO vtar

STORE “” TO vnomb

Store 0 to vimp

 

STORE tarje TO vtar

STORE nombre TO vnomb

Store htrab to vimp

                                                  Select sp00m6

                                                  Appe blank

 

                                                  REPLACE tarje WITH vtar

                                                  REPLACE nombre WITH vnomb

                                                   REPLACE htrab WITH vimp

 

 

 

 

                                                  Select sp00m7

 

                                                  Skip

 

                                                   enddo

 

 

 

Ambos son aparte.

**** Otro pedazo de código en VFP9 a posgresql como procedimiento almacenado.

 

 

Select pagar

 

REPLACE ALL ianti1 WITH ((htrab1)*(antigueda1/190.6)) FOR sep="1".and.antigueda1>0.and.htrab1>0

REPLACE ALL ianti1 WITH ianti1+((htrab2)*(antigueda2/190.6)) FOR sep="2".and.antigueda2>0.and.htrab2>0  

 

 

Como es estas líneas en Posgres?

 

 

Luego como Llamo EL procedimiento almacenado desde VFP?

 

 

 


Carlos Miguel FARIAS

unread,
Oct 18, 2016, 6:28:59 PM10/18/16
to Grupo Fox
Convertí la lógica de lo que escribiste (que me llegó muy destabulada) a SQL de Fox, luego, pasarlo a postgresql es muy simple.
Si no puedes pasarla a SQL de fox, no creo que puedas luego usar postgresql o ningùn otro SGBD

mpulla

unread,
Oct 19, 2016, 12:28:48 AM10/19/16
to Comunidad de Visual Foxpro en Español
Hola pupo.

Tienes que aprender DML, nada difícil si le pones ganas.

Te dejo las funciones  no tuve oportunidad de probarla.

Saludos.
Mauricio

CREATE OR REPLACE FUNCTION miesquema.inserta_en_spp006m()
  RETURNS void AS
$BODY$

BEGIN 

Insert Into sp00m6 (tarje, nombre, htrab)
Select tarje, nombre, htrab
 From sp00m7;


END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;


CREATE OR REPLACE FUNCTION miesquema.actualiza_pagar()
  RETURNS void AS
$BODY$

BEGIN 

Update pagar 
 Set ianti1 = ((htrab1)*(antigueda1/190.6))
  Where sep="1"
    and antigueda1 > 0
    and htrab1 > 0;

Update pagar 
 Set ianti1 = ianti1+((htrab2)*(antigueda2/190.6))
  Where sep="2"
    and antigueda2 > 0
    and htrab2 > 0;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Desde VFP 

sqlexec(miManejador, [Select * from miesquema.inserta_en_spp006m() ])

pupo

unread,
Oct 19, 2016, 7:30:45 AM10/19/16
to Comunidad de Visual Foxpro en Español
Mil Gracias Mauricio, lo ejecutaré luego y le respondo.
Me parece que funcionará.

Saludos

Pupo

pupo

unread,
Oct 19, 2016, 9:53:45 AM10/19/16
to Comunidad de Visual Foxpro en Español

Mauricio mira el error al implementar en PgAdmin, que crees?

Gracias
Error al agregar el motor PG.JPG

Carlos Hidalgo

unread,
Oct 19, 2016, 10:37:04 AM10/19/16
to publice...@googlegroups.com

Yo te aconsejo que lo hagas mediante el sql de pgadmin.  No con ese asistente.  Es mas practico y rapido.
Puede hacer pruebas.  Modificar rapidamente, te marca el error y te da sugerencias.

Carlos Hidalgo

unread,
Oct 19, 2016, 10:41:05 AM10/19/16
to publice...@googlegroups.com

Y concuerdo con lo del señor  Farias..  En serio primero hazlo en foxpro con sql (en la ayuda  de fox esta)
Si te  funciona en Fox te funcionara en postgres.
Puedes hacer los update,  insert,  y delete directamente  de fox a postgres.  No necesitas una funcion.
Te lo digo porque yo asi empeze y me fue mas facil entender los errores en postgres.
Saludos

Qsoft

unread,
Oct 20, 2016, 2:27:55 AM10/20/16
to publice...@googlegroups.com
y antes que nada, lee la seccion del manual sobre la sintaxis plpgSQL en la escritura de FUNCTIONS

https://www.postgresql.org/docs/9.4/static/plpgsql-structure.html

Enrique Vasquez B.

Carlos Hidalgo

unread,
Oct 20, 2016, 8:21:45 PM10/20/16
to publice...@googlegroups.com

En el Play de google hay una aplicación de android que se llama Postgresql desde Cero.
Es un tutorial bastante  sencillo y con ejemplos.  En español. 
He aprendido mucho ahi.
Saludos

Carlos Miguel FARIAS

unread,
Oct 21, 2016, 7:00:51 AM10/21/16
to Grupo Fox
Ojo que postgresql está limitado a manejar números apenas mayores a los 100 mil dígitos.
No todos los tipos de datos de postgresql están definidos, porque el usuario puede definir sus propios tipos.
En un modelo relacional cada intersección fila columna puede contener un solo valor.
En postgresql puede contener un arreglo.
En postgresql por omisión los índices son de tipo btree pero pueden seleccionarse otros tipos, para casos especiales de acceso (más rápidos o más chicos o otras rarezas).
En postgresql los SP pueden escribir en el lenguaje propio (similar al de Oracle) o usar otros lenguajes de programación como python.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad 🖖
Que la Fuerza los acompañe 🔌
Reply all
Reply to author
Forward
0 new messages