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
  #21  
Antiguo 03-08-2007
Avatar de raorre
raorre raorre is offline
Miembro
 
Registrado: dic 2005
Ubicación: valencia
Posts: 51
Poder: 19
raorre Va por buen camino
gracias

pues muchas gracias enviamelo a raorre@hotmail.com, gracias otra vez.
Responder Con Cita
  #22  
Antiguo 30-08-2007
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
Para solventar el problema de las actualizaciones automáticas yo uso un control llamado UltilMind Autoupgrader Pro, el problema es que creo que es un control propietario mas vale la pena, con dos líneas de código solventas el problema.

Un saludo
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #23  
Antiguo 30-08-2007
Avatar de martinzcr
martinzcr martinzcr is offline
Miembro
 
Registrado: jun 2006
Ubicación: San Jose, Costa Rica
Posts: 53
Poder: 18
martinzcr Va por buen camino
Red face Actualizar sistema y base de datos

Hola a todos!

No se si corresponda que ponga esto aca.... por favor, sepan disculpar si no es así.

Yo tengo un problema similar con las actualizaciones. La parte de actualización de archivos la puedo resolver como se plantea en este el hilo. mi problema esta relacionado con la actualización de la estructura de la base de datos (utilizo firebird 1.5).
Actualmente, si una actualización además de cambios en el ejecutable tiene modificaciones, tengo cambios para la estructura de la base de datos, me toca ir a la PC que tiene la base de datos y correr los scripts manualmente.

Quisiera saber si alguno tiene una idea de como automatizar este proceso.

Saludos y gracias!
__________________
Martin Zalazar
Responder Con Cita
  #24  
Antiguo 31-08-2007
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
No se si es lo mejor pero te diré como lo hago yo. Creo otra aplicación la cual será llamada desde el programa que será actualizado. Desde este último compruebas si existe el programa de actualización para la base de datos, si existe lo ejecutas y tras la ejecución lo borras(para que no se ejecute la próxima vez).

El siguiente código que te pongo es trabajando con una base de datos mysql y con los controles zeos.

Código Delphi [-]
type
  tSQL=record
    tabla : string[15];
    consulta : string;
  end;

{$R *.dfm}

procedure TFrmPrincipal.FormShow(Sender: TObject);
const
  NumConsultas=3;
var
  i, j     : integer;
  Nombre   : String;
  UserName : String;
  Fichero  : TIniFile;
  pc       : string;
  Correcto : boolean;
  consultas : array of tSQL;
begin
  Animate1.Active:=True;
{ RELLENO LAS CONSULTAS QUE DEBO REALIZAR }
  SetLength(consultas,NumConsultas);

  consultas[0].tabla:='Config';
  consultas[0].consulta:='Alter table Config add column PorcentajePVD float';

  consultas[1].tabla:='Config';
  consultas[1].consulta:='create table Abonos(IdAbono INT AUTO_INCREMENT,Fecha DATE NOT NULL,NumAbono INT NOT NULL,'+
                         'CierreCaja BOOL DEFAULT 0 NOT NULL,Usuario CHAR(10)NOT NULL,TipoIVA INT NOT NULL DEFAULT 16,'+
                         'PRIMARY KEY  (IdAbono))';

  consultas[2].tabla:='Config';
  consultas[2].consulta:='create table DetallesAbono(IdDetalleAbono INT AUTO_INCREMENT,RefInterna CHAR(8) NOT NULL,'+
                         'Descripcion CHAR(50) NOT NULL,Cantidad INT NOT NULL,PrecioVenta FLOAT NOT NULL,'+
                          'IdAbono INT NOT NULL,PRIMARY KEY(IdDetalleAbono))';


{ ME CONECTO CON LA BASE DE DATOS }
  j:=length(Application.ExeName);
  j:=j-14;
  Nombre:='';
  Username:=Application.ExeName;
  for i:=1 to j do
    Nombre:=Nombre+Username[i];
  Fichero:=TIniFile.Create(Nombre+'\Config.ini');
  pc:=Fichero.ReadString('CONEXION','Pc','192.168.1.2');

  Correcto:=False;
  while not Correcto do
  begin
    try
      Conexion.Connected:=False;
      Conexion.HostName:=trim(pc);
      Conexion.Connected:=True;
      Correcto:=True;
    except
      if MessageDlg('No se encuentra el ordenador central. ¿Desea especificar su ubicación?',
                    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        pc:=InputBox('Especifique nombre servidor',
                     'Introduzca la IP del servidor o su nombre de red'+#13+
                     'Ejemplos: '+#13+
                     '192.168.1.2'+#13+
                     'centralita',
                     PC);
      end
      else
      begin
        Correcto:=True;
        Application.Terminate;
      end;
    end;
  end;
{ RECORRO EL ARRAY DE CONSULTAS Y LAS VOY EJECUTANDO }
  for i:=low(consultas) to high(consultas) do
  begin
    TbTabla.TableName:=consultas[i].tabla;
    TbTabla.Active:=True;
    CConsulta.SQL.Clear;
    CConsulta.SQL.Add(consultas[i].consulta);
    try
      CConsulta.ExecSQL;
    except
    end;
    TbTabla.Active:=False;
    CConsulta.Close;r
  end;
{ MUESTRO UN MENSAJE DE INFORMACIÓN Y TERMINO EL PROGRAMA }
  Animate1.Active:=False;
  ShowMessage('El proceso de actualización de la base de datos ha terminado.');
  Application.Terminate;
end;
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #25  
Antiguo 31-08-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Solo comentar que el programa que puse como ejemplo (agent.zip) cuando descarga un ejecutable llamado autorun.exe, además de descargarlo lo ejecuta. De esta manera puedes crear un programa que actualice la base de datos.
Responder Con Cita
  #26  
Antiguo 31-08-2007
Avatar de martinzcr
martinzcr martinzcr is offline
Miembro
 
Registrado: jun 2006
Ubicación: San Jose, Costa Rica
Posts: 53
Poder: 18
martinzcr Va por buen camino
Thumbs up

Gracias gente... voy a probar con eso y luego les comento como me fue

Saludos!
__________________
Martin Zalazar
Responder Con Cita
  #27  
Antiguo 03-02-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Se puede reabrir este hilo??
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
Actualizar programa turminator Internet 1 15-05-2006 01:49:34
Actualizar los puestos de un programa instalado en el servidor VRO Conexión con bases de datos 3 19-07-2005 20:53:16
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 13:56:20
actualizar mi programa nicocer SQL 1 27-10-2003 12:16:47


La franja horaria es GMT +2. Ahora son las 09:15:28.


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