Ver Mensaje Individual
  #4  
Antiguo 17-05-2016
tmsanchez tmsanchez is offline
Miembro
 
Registrado: mar 2004
Ubicación: Mexico
Posts: 67
Reputación: 21
tmsanchez Va por buen camino
Un opción sería tener dos programas:

A) Programa que publica las actualizaciones.-

Programa que corre en el equipo donde está tu catálogo maestro, su función es la siguiente:

1. Genera un archivo en texto plano, cada linea en el archivo es un registro, en cada línea los campos están separados por una coma o por un pipe (|)
2. El programa comprime el archivo en formato .ZIP (con eso te ahorras algo de espacio)
3. Publica el archivo actualizado en un FTP, HTTPS on en el servidor que tengas


B) El programa en el cliente que actualiza

1. El programa se conecta al servidor (FTP, HTTPS, etc.)
2. Descarga el archivo comprimido y lo descomprime
3. Abre al archivo de texto plano
4. Procesa la actualizacion:

Para cada linea del archivo de texto
Parsear para obtener los valores de los campos y almacenarlos por ejemplo en un Record
Arma la sentencia UPDATE (Update tabla set campo1 = :CAMPO1... WHERE llave= :LLAVE)
Asignar los valores del Record (ParamByName('CAMPO1').Value := record.campo1...

Ejecutar un query de actualización y obtiene cuantos registros fueron actualizados
registrosActualizados := query.ExecSQL

si registrosActualizados = 0 entonces ejecutarSentenciaInsert (INSERT INTO tabla (campo1, campo2, campoN) VALUES ( :CAMPO1, :campo2, :campo)

Algo así, espero te sea de utilidad.
Responder Con Cita