VFP 9+ Actualizar mi APlicacion Exe (ejecutable) en los Clientes

1,153 views
Skip to first unread message

José Jiménez Zuryta

unread,
Dec 13, 2010, 1:38:53 PM12/13/10
to Comunidad de Visual Foxpro en Español
Alguien tiene el procedimiento o programa para realizar este proceso?
ME ayudaria mucho... se los agradezco.

Luis Maria Guayan

unread,
Dec 13, 2010, 1:48:23 PM12/13/10
to publice...@googlegroups.com
Lista para funcionar !!!

-- Actualización de aplicación VFP de manera sencilla --
http://www.portalfox.com/index.php?name=Sections&req=viewarticle&artid=162


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

 

Jairo Miranda

unread,
Dec 13, 2010, 2:05:57 PM12/13/10
to publice...@googlegroups.com

Estoy tratando de correr una consulta con clausula  GROP BY  , pero me da error de sql conmand ,

Los quito y sigue dando el error. , vuelvo y corro el SET ENGINEBEHAVIOR 90|80|70 y sigue dando error

 

Atte

Jairo

Yvan GMAIL

unread,
Dec 13, 2010, 2:09:03 PM12/13/10
to publice...@googlegroups.com

Pasa el código.. para revisarlo.

Luis Maria Guayan

unread,
Dec 13, 2010, 2:11:19 PM12/13/10
to publice...@googlegroups.com
El Comando es:

SET ENGINEBEHAVIOR 70  && Compatibilidad con VFP7 y anteriores

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

 


Ricardo Pina

unread,
Dec 13, 2010, 2:09:40 PM12/13/10
to publice...@googlegroups.com
Hola
 
Entonces estará mal la clausura, manda la consulta y la vemos
 
Saludos

--
Ricardo Pina
D&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar

Jairo Miranda

unread,
Dec 13, 2010, 2:23:55 PM12/13/10
to publice...@googlegroups.com

SELECT DISTINCT Hi1.numfact, Hi1.numped, Hi1.fecha, Hi2.numpro,;

  Hi2.descrip AS decrip_c, Hi2.cantidad, Hi2.costo, Hi2.precio, SUM(Hi2.total) as total ,;

  Hi1.client, Hi1.nombre, Cli.descrip, Inv.descrip_b;

FROM ;

     hi1 ;

    INNER JOIN hi2 ;

   ON  Hi1.numfact = Hi2.numfact ;

    INNER JOIN inv ;

   ON  Hi2.numpro = Inv.numpro ;

    INNER JOIN cli ;

   ON  Hi1.client = Cli.client;

   WHERE Hi1.fecha >= m.fecha_ini AND Hi1.fecha <= m.fecha_fin ;

ORDER BY Cli.descrip, Hi1.fecha;

GROUP BY Hi1.fecha;

INTO CURSOR Vpvenppcf 

Jairo Miranda

unread,
Dec 13, 2010, 2:24:35 PM12/13/10
to publice...@googlegroups.com

SELECT DISTINCT Hi1.numfact, Hi1.numped, Hi1.fecha, Hi2.numpro,;

  Hi2.descrip AS decrip_c, Hi2.cantidad, Hi2.costo, Hi2.precio, SUM(Hi2.total) as total ,;

  Hi1.client, Hi1.nombre, Cli.descrip, Inv.descrip_b;

FROM ;

     hi1 ;

    INNER JOIN hi2 ;

   ON  Hi1.numfact = Hi2.numfact ;

    INNER JOIN inv ;

   ON  Hi2.numpro = Inv.numpro ;

    INNER JOIN cli ;

   ON  Hi1.client = Cli.client;

   WHERE Hi1.fecha >= m.fecha_ini AND Hi1.fecha <= m.fecha_fin ;

ORDER BY Cli.descrip, Hi1.fecha;

GROUP BY Hi1.fecha;

INTO CURSOR Vpvenppcf 

 

Ricardo Pina

unread,
Dec 13, 2010, 2:35:38 PM12/13/10
to publice...@googlegroups.com
Hola Jairo
 
Logicamente no veo el motivo para hacer el join con el cliente y el inventario si vas a juntar todo por fecha.
Fijate por ahi
 
Saludos

Luis Maria Guayan

unread,
Dec 13, 2010, 2:43:30 PM12/13/10
to publice...@googlegroups.com
Mira estos artículos para que sepas el porque de este comportamiento


-- Solucionar Error: SQL: la cláusula GROUP BY falta o no es válida --
http://www.portalfox.com/article.php?sid=998

-- Cambios en el comportamiento de SELECT SQL en Visual FoxPro 8 --
http://www.portalfox.com/article.php?sid=861



Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

 


Jairo Miranda

unread,
Dec 13, 2010, 2:44:22 PM12/13/10
to publice...@googlegroups.com

Se que hay redundancia en la consulta, la cosa es que  CLI me devuelve el nombre del país del cliente y INV me devuelve el nombre del proveedor  .

 

Lo raro es que funciona en VFP6   …

Ricardo Pina

unread,
Dec 13, 2010, 2:49:35 PM12/13/10
to publice...@googlegroups.com
Bueno, entonces debe ser como dice Luis Maria, antes de hacer la consulta
debes incluir
 
set enginebehavior 70
 
Saludos

Jose Zurita

unread,
Dec 13, 2010, 5:52:58 PM12/13/10
to PublicesvFoxpro
Lo reviso y te cuento, te agradezco.


Date: Mon, 13 Dec 2010 15:48:23 -0300
From: luis...@portalfox.com
To: publice...@googlegroups.com
Subject: Re: [vfp] VFP 9+ Actualizar mi APlicacion Exe (ejecutable) en los Clientes

Carlos Miguel FARIAS

unread,
Dec 13, 2010, 6:35:23 PM12/13/10
to publice...@googlegroups.com
Hay un error elemental de que la clausula order by debe ser la última del comando sql, agrupamiento con distinct, no tendría sentido, porque tiene que distinguirse al agrupar
A continuación, los cambios que haria, saco el distinct (en rojo), agrego todos los campos de salida (select) que no estan en funcion sumaria (SUM) en el group by (resaltado celeste), subo la salida de los datos (resaltado naranja) y bajo la sentencia ORDER BY (resaltado verde).
Mas allá de que puede haber algún error porque no tengo como probarlas, la estructura que paso funcionaria en VFP 9


SELECT DISTINCT Hi1.numfact, Hi1.numped, Hi1.fecha, Hi2.numpro,;

  Hi2.descrip AS decrip_c, Hi2.cantidad, Hi2.costo, Hi2.precio, SUM(Hi2.total) as total ,;

  Hi1.client, Hi1.nombre, Cli.descrip, Inv.descrip_b;

FROM ;

     hi1 ;

    INNER JOIN hi2 ;

   ON  Hi1.numfact = Hi2.numfact ;

    INNER JOIN inv ;

   ON  Hi2.numpro = Inv.numpro ;

    INNER JOIN cli ;

   ON  Hi1.client = Cli.client;

INTO CURSOR Vpvenppcf ;

   WHERE Hi1.fecha >= m.fecha_ini AND Hi1.fecha <= m.fecha_fin ;

GROUP BY Hi1.fecha Hi1.numfact, Hi1.numped, Hi2.numpro,;

  Hi2.descrip AS decrip_c, Hi2.cantidad, Hi2.costo, Hi2.precio,;

  Hi1.client, Hi1.nombre, Cli.descrip, Inv.descrip_b;

ORDER BY Cli.descrip, Hi1.fecha

Jose Zurita

unread,
Dec 15, 2010, 9:03:18 AM12/15/10
to PublicesvFoxpro, Luis MAria Guayan
Estimado Luis Maria: agradezco de tu ayuda. Una duda. He bajado el programa, aplicación y ejemplo que mencionas. Yo tengo una aplicación que ya la tengol ista, ya he generado el exe y me ha funcionado como Cliente/servidor, mi base de dtos (dbc y dbf´s) las tengo en un servidor y todo se ejecuta sin problemas. En mi aplicación estoy usando algunas clases como FoxyPreviwer y Foxchart y sin problemas ejecuto mi aplicación.
1. Mi aplicación la tengo en el disco duro local de cda usuario en mi red: c:\smq
2. En esta misma carpeta tengo copiadas las carpetas c:\smq\iconos, c:\smq\bitmaps y c:\smq\forms, entiendo que estas carpetas van junto con mi ejecutable.
3. En una parte de mi red tengo la aplicación que actualizo con modificaciones de mejoras y/o soluciones a errores que voy implementando.
4. L aidea es que con la aplicación AppUpdate se pueda estar actualizando mi aplicación de manera transparente para el usuario.
5. He visto el archivo appupdate.ini y he tratado de entender que lineas son las que debo de modificar para el prioceso de actualización de mi exe pero no he logrado que funcione.
6. Las lineas que he modificado son las siguientes: applicationtoupdate=smq.exe, versionsource=i:\smq\smq.exe y updatesource=c:\smq\
7. Mi exe original (fuente) lo tengo en i:\smq
8. Mi exe destino lo tengo en cada equipo cliente que esta en mi red: c:\smq
9. Al usuario que le instalo la aplicación cliente, no es usuario administrador, están dentro del grupo Usuarios.
10. Los archivos que copio dentro del cliente son mi exe, y los archivos dll's que requiere fox, las clases que estoy usando y las carpetas antes mencionadas en el punto 2, lo cual he revisado y hecho pruebas y no tengo ningún problema.
11. Los archivos que copio de la aplicación APpUpdate son: AppUpdate.exe y AppUpdate.ini, en la carpeta donde tengo mi aplicacion c:\smq
12. POsteriormente quiero usar la aplicación que me has sugerido para hacer discos de Instalación InstallShield, supongo que aki va todo, o sea, mi aplicación y la aplicación AppUpdate

Estas líneas son las que debo de Modificar?
En donde tengo el error?

Gracias por tu valiosa ayuda y aprovecho para deserate una feliz navidad y felicitarte por tu desinteres en ayudar a mucha gente del grupo y de otros portales en donde he visto tu ayuda. Dios te bendiga.


From: jzu...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] VFP 9+ Actualizar mi APlicacion Exe (ejecutable) en los Clientes
Date: Mon, 13 Dec 2010 22:52:58 +0000

Luis Maria Guayan

unread,
Dec 15, 2010, 9:13:47 AM12/15/10
to Jose Zurita, PublicesvFoxpro
José, creo que estas mezclando las cosas. AppUpdate, solo actualiza el EXE de una aplicación, que ya fue instalada con su respectivo programa instalador (InstallShield, InnoSetup, etc)


Jose Zurita

unread,
Dec 17, 2010, 12:16:53 PM12/17/10
to PublicesvFoxpro
Alguien puede ayudarme con este tema?, tengo algunas dudas de como funciona esta aplicación.


Date: Wed, 15 Dec 2010 11:13:47 -0300
From: luis...@portalfox.com
To: jzu...@hotmail.com
CC: publice...@googlegroups.com

Jose Zurita

unread,
Dec 17, 2010, 1:29:43 PM12/17/10
to PublicesvFoxpro, Luis MAria Guayan
Luis: tendrás respuestas a mis dudas? agradeceré me puedas ayudar.



Date: Wed, 15 Dec 2010 11:13:47 -0300
From: luis...@portalfox.com
To: jzu...@hotmail.com

elkin dario uribe torres

unread,
Dec 28, 2010, 11:57:06 AM12/28/10
to publice...@googlegroups.com
Hola Luis

He tratado de implementar la actualizacion dentro de la red interna de la empresa y me sale el siguiente error "No es posible recuperar la actualizacion".

Este error ocurre cuando ejecuta las siguientes instrucciones en el metodo Downloadupdate

OTHERWISE   &&La variable me la pone en .F.
    IF UPPER(LEFT(This.UpdateURL, 7)) != "FILE://"
        This.UpdateURL = "File://" + This.UpdateURL
    ENDIF
    m.llReturn = FileGet(This.UpdateURL, m.lcUpdateFile, "m.goThisForm.ProgressHandler()")
ENDCASE

y los valores que tiene cargados son los siguientes:

m.lcUpdateFile = this.downloadupdateto +JUSTFNAME(this.updateurl)

Quedando el valor asi de m.lcUpdateFile = "C:\Gestion\contabilidad.zip" debido a que:

1. this.DownloadUpdateTo = ADDBS(m.tcDownloadUpdateTo) tiene el valor del directorio donde corre la actualizacion y no del directorio donde esta la actualizacion?

2. JUSTFNAME(this.updateurl)  tiene el valor del nombre del archivo comprimido

3. This.UpdateURL = "FILE://C:\Actualiza\Contabilidad.zip" queda construido como lo ves ya que mas arriba en el Case le agrega la palabra "FILE://"

Al retornar la variable m.llReturn en .F., no me actualiza y me marca el error arriba descrito debido a que se va por el Else de la instruccion

If m.llReturn AND FILE(m.lcUpdateFile)
    Set Library To (Locfile("VFPCompression.fll","FLL","Select")) ADDITIVE
    If UnzipQuick(m.lcUpdateFile, this.downloadupdateto, .F.) && attempt to extract the update
        this.RunScripts()
        this.CopyUpdateIfNeeded()
        Messagebox("Su version ha sido actualizada.", 64, "ACTUALIZACION COMPLETA")
    Else
        Messagebox("Ha sido imposible extraer el archivo: " + CRLF + CRLF + m.lcUpdateFile, 64, "FALLO LA ACTUALIZACION")
    Endif
    Set Library To
    Erase (m.lcUpdateFile)
    IF FILE(this.tempversionfile)
        ERASE (this.tempversionfile)
    ENDIF
Else
    Messagebox("No es posible recuperar la actualizacion.", 64, "FALLO LA ACTUALIZACION")
ENDIF

Si me pudiera alguien informar que es lo que hace el fileget o que valores deben ir creo que podria arreglarlo.  Espero no haberme enredado mucho.

Gracias


Elkin Uribe

lm...@cclf.com.pe

unread,
Dec 28, 2010, 12:06:58 PM12/28/10
to publice...@googlegroups.com
porque no montas un FTP que descargue y distribuya tu ftp. puedes montar un ftp local, o a nivel de internet. y puedes hacarlo con windows xp, vista, ws 2003.
 
Luis

Luis Maria Guayan

unread,
Dec 28, 2010, 5:20:42 PM12/28/10
to publice...@googlegroups.com
Lee los archivos TXT y INI de la descarga del sitio de Craig Boyd.

Hay un archivo AppUpdate.ini en donde debes configurar el nombre y la ubicación de los archivos


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Reply all
Reply to author
Forward
0 new messages