Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Upgrade Aplicacion

Hola amigos, se me ocurrio una idea para mejorar mi aplicacion.

Utilizo Delphi 2006, Firebird 2.0 y los componentes de la paleta de Interbase para conectarme con las tablas.

Me gustaria tener un boton en mi aplicacion que se conecte con el servidor (el mismo donde tengo la base de datos), que automaticamente se actualize.

Se puede hacer esto?

Alguna idea de como hacerlo?

Gracias por su tiempo.... Saludos
Responder Con Cita
  #2  
Antiguo 05-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Se me olvido mencionar que utilizo installShield 12 para generar el instalador de la aplicacion... nose si esto es relevante para mi connsulta, pero igual lo comento...

Saludos
Responder Con Cita
  #3  
Antiguo 05-03-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Qué quieres que se actualice?
- El ejecutable
- La base de datos
- Algún archivo (imágenes, help, etc)
- Todo esto

Quizás podrías poner en un FTP un archivo comprimido que tenga un nombre que incluya la versión o la fecha y hacer que tu ejecutable chequee que está ese archivo y si es mayor que la versión que está instalada.

(Nombre + _ + version)
MiAplicacion_v2.3.zip
MiAplicacion_20080305.rar
MiAplicacion_1234.exe

Si el usuario quiere actualizar
- descargas el/los archivos,
- los descomprimes,
- ejecutas el instalador y cierras la aplicación para poder reemplazar el ejecutable.

Ten en cuenta que si tienes una base de datos, quizás debas ejecutar algún script para actualizarla.
Responder Con Cita
  #4  
Antiguo 05-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Hola

Quiero actualizar el ejecutable. Creo que la forma mas facil de hacerlo a comparando fechas...

Como es eso del FTP... como lo hago??

Ayuda porfa

Gracias
Responder Con Cita
  #5  
Antiguo 05-03-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Prueba la solapa Indo Clients.

Hay un componente para hacer clientes FTP. (TidFTP)
Nunca lo he utilizado pero parece sencillo.
Rellenas unas cuantas cosas del componente (direccion, puerto, nombre de usuario, password, etc) y luego supongo que debes llamar a get.

procedure Get(const ASourceFile: string; ADest: TStream); overload;

Si no te sirve esto, prueba a hacer una búsqueda en los foros, que seguro que encuentras mil ejemplos.

Saludos
Responder Con Cita
  #6  
Antiguo 05-03-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿para que comparar fechas cuando puedes comparar la versión de tu programa?

Busca información sobre "FileVersionInfo"

En tu pograma puedes incluir, sin ningún problema, la información de versión hasta en 4 niveles

"Programa 1.3.4.123" por ejemplo... donde el primer nivel (1) es el número de versión mayor, el segundo nivel (3) es la versión menor, el tercer nivel (4) es el número de veces que has liberado tu programa y el cuarto y último nivel (123) es el número de veces que has hecho un "Build" a tu programa.

Esto lo controlas desde las opciones de tu proyecto (el último nivel se controla automáticamente).

Por aquí en los foros, hay una función que se llama "GetAppVersionInfo", si la buscas, seguro la encuentras. Y esa función te ayuda a saber en que versión esta tu programa consultandola directamente del archivo. De esta forma, consulta la versión del archivo que se encuentra en el FTP (o en la carpeta donde se supone colocaras la versión más actualizada) y la comparas con la versión del archivo donde se encuentra tu ejecutable.

Las JEDI tienen un componente llamado "TjvProgramVersionCheck" que supongo sirve para lo mismo, según sus propiedades, le indicas en que FTP/HTTP/Carpeta se encuentra el archivo actualizado y que acciones tomar en caso de encontrar una nueva versión. Digo supongo porque nunca lo he utilizado.

Saludos
__________________

Responder Con Cita
  #7  
Antiguo 06-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
hola... aer si me pueden ayudar...

estoy utilizando Tidftp para descargar el archivo... pero antes de descargarlo primero quiero saber si es que la version que esta en el servidor ftp es mas nueva que la que tengo en el PC cliente.

para obtener la version de la aplicacion en el PC cliente lo hago de esta manera

Código Delphi [-]
result:='';
  ruta := 'c:\mat\ordenes.exe';
  if not FileExists(ruta) then Exit;
  Size := GetFileVersionInfoSize(PChar(ruta), Size2);
  if (Size > 0) then begin
    GetMem(Pt, Size);
    try
      GetFileVersionInfo(PChar(ruta), 0, Size, Pt);
      VerQueryValue (Pt, '\', Pt2, Size2);
      with TVSFixedFileInfo (Pt2^) do begin
        Result :=
        IntToStr(HiWord(dwFileVersionMS))+'.'+
        IntToStr(LoWord(dwFileVersionMS))+'.'+
        IntToStr(HiWord(dwFileVersionLS))+'.'+
        IntToStr(LoWord(dwFileVersionLS));
      end;
    finally
      FreeMem(Pt);

Ahora bien necesito comprar esta version con la que esta en el servidor FTP... como hago para obtener la version del ejecutable que esta en el servidor y luego compararlas??

Espero me puedan ayudar,...

Saludos
Responder Con Cita
  #8  
Antiguo 06-03-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Quizas te puedas ahorrar todo eso con un componente prefabricado, no?
__________________
El malabarista.
Responder Con Cita
  #9  
Antiguo 06-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
ya lo creo, pero... cual podria ser?

He buscado pero no encuentro nada...

Saludos
Responder Con Cita
  #10  
Antiguo 06-03-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
pues sería igual, pero la ruta sería al servidor ftp
__________________

Responder Con Cita
  #11  
Antiguo 07-03-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
entonces la ruta deberia quedar algo asi:

por ejemplo si la direccion IP del servidor FTP es 192.1.1.70


ruta := '192.1.1.70:c:\mat\ordenes.exe';

estoy en lo correcto
Responder Con Cita
  #12  
Antiguo 07-03-2008
Avatar de nightynvid
[nightynvid] nightynvid is offline
Miembro Premium
 
Registrado: may 2006
Ubicación: en algun lugar de Leon....
Posts: 111
Poder: 18
nightynvid Va por buen camino
Otra solucion es si tienes un servidor de base de datos, tener una tabla con las versiones que vas publicando, cada que generes una version das de alta un registro con la informacion de la nueva version, de esa manera haces solo una consulta a la tabla de versiones y seleccionas la mas reciente, la comparas con la version del programa cliente y si es mas reciente o mas antigua haces lo necesario.
__________________
inutilerias.blogspot.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualización Ms-Dos 5.00 Upgrade. marcoszorrilla La Taberna 2 24-09-2007 09:59:06
read string from offset - upgrade needed scriptors Varios 2 07-09-2007 15:35:32
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
upgrade W2K a Window 2003 santi33a Windows 0 12-06-2006 14:26:05
Upgrade ActiveX Component Pook OOP 1 04-05-2006 12:10:41


La franja horaria es GMT +2. Ahora son las 01:46:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi