Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2010
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
Resp

Lso que puedan leer el codigo del replicador que viene en ib_objects veran que es una de las soluciones mas praticas que he visto. Solo que hay que agregarles uans cositas entras a la base de datos.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #2  
Antiguo 07-10-2010
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 531
Poder: 24
IVAND Va por buen camino
Hola a todos

Guillotmarc si no es mucha molestia me podrias indicar como haces para trabajar con los servidores desconectados ya he logrado hacer funcionar la replicacion en una via y en dos vias aun estoy intentado pero seguro sera solo cosa de revisar


Gracias por tu amable explicacion
__________________
IVAND
Responder Con Cita
  #3  
Antiguo 08-10-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola Iván.

En el fondo es muy sencillo. No hay que hacer mucho más que en una replicación con servidores conectados.

Tienes tu tabla de LOGS donde se especifican todos los registros que hay que traspasar. Pues abres en un ClientDataset el contenido de la tabla LOGS y lo guardas en un archivo (por ejemplo en un archivo XML, ya que el ClientDataset te da distintas opciones para guardar).

Naturalmente con solo esa información, otro servidor no va a poder replicar los datos. Ahora te queda recorrer todas las tablas a replicar, y para cada una de ellas cargar en un ClientDataset los registros que se replicaran. Ejplo.:

select * from TABLA1
where ID in (select REGISTRO_ID from LOGS where TABLA_ID = n)

Cada uno de estos ClientDatasets lo tienes que guardar también en un archivo XML.

Una vez has pasado a archivos XML la tabla de LOGS, y los datos a replicar de todas las tablas en replicación, entonces puedes empaquetar todos estos archivos XML en un archivo ZIP.

Finalmente, cuando tienes todos los datos necesarios para una replicación, en ese archivo ZIP, lo subes a una carpeta FTP, para que esté disponible on-line. De manera que el segundo servidor, cuando se conecte a Internet, o cada cierto tiempo (yo lo suelo programar para que busque nuevos paquetes cada 5 minutos), solo le queda conectarse a esa carpeta FTP y descargar todos los archivos ZIP de replicación que allí se encuentren.

El proceso contrario. La importación de estos datos, tampoco tiene nada del otro mundo.

Solo tienes que descomprimir un archivo ZIP con los datos de una replicación. Cada archivo XML contiene los datos para ser cargados en un ClientDataset (uno para la tabla de LOGS y el resto para cada una de las tablas que se replican).

Así que una vez cargada esa información en los correspondientes ClientDatasets, ya solo resta hacer exactamente lo mismo que hariamos si estuvieramos replicando con los servidores conectados.

Es decir recorremos la tabla de LOGS (el ClientDataset donde la tenemos cargada) y para cada registro hacemos el correspondiente INSERT, UPDATE o DELETE en el servidor de destino. Para los INSERT o UPDATEs, la información a insertar la sacamos del ClientDataset correspondiente a esa tabla (ya que no lo podemos consultar directamente en el Servidor de Origen).

Finalmente ya solo te queda establecer un sistema de numeración de las paquetes a replicar, para asegurarte de que no se te quedan olvidados (por ejplo. por un error en el servidor FTP) paquetes sin importar.

Cualquier cosa que no veas clara, consultalo y lo comentamos.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 09-10-2010
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 531
Poder: 24
IVAND Va por buen camino
Gracias, como siempre muy explicado probare y te molestare por cualquier cosa


De nuevo muchas gracias
__________________
IVAND
Responder Con Cita
  #5  
Antiguo 20-10-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
El documento clásico de replicación en Interbase (y por tanto en Firebird), que citaba en el post #3, ha cambiado de ubicación.

Ahora lo podéis encontrar en : http://www.ibphoenix.com/resources/d...how_to/doc_316

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 20-10-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Gracias por avisar
Responder Con Cita
  #7  
Antiguo 09-11-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
hola. ando viendo tambien esto de replicacion

hasta ahora tengo entendido que solo se estan manejando datos de tipo
varchar.
char
integer.

pero con los campos de tipo blob
y de sus subtipos binary.

esto lo pregunto por que voy a replicar una base de datos y en su estructura hay archivos que quiero que
de la central pasen a las db sucursales

como pueden ser imagenes.
archivos pdf,
archivos xml.
binarios dentro de el tipo blob.


como se haria para actualizar esta informacion?

hasta ahora he pensado en meter la informacion en base 64 dentro del campo blob.
y programar cada que se mete algo que sea en base 64 pero si en este caso el cliente
quiere que su factura tenga su logotipo. eso lo tengo que meter en la sincronizacion.
o las fotos de los empleados. al usar fastreport o cualquier otro. no entendera que el campo donde va el grafico esta en Base 64
sino que leera solo texto.

alguna idea??

gracias.
Responder Con Cita
  #8  
Antiguo 26-09-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 240
Poder: 23
Chaja Va por buen camino
mensaje para guillote.... sobre replicacion

Master:
Estuve leyendo el tema este de la replicacion y no le encuentro la vuelta, sera por que son las 2 de la madrugada y no me funciona. Yo Tengo que hacer una replicacion, por ahora del servidor a las suc. Con los articulos,rubros,sub y precios. son dos sucursales por ahora. Como hago para hacer la replicacion y que ademas asegurarme del que tuvo exito la replicacion. La verdad que no se como hacer todo este lio. alguna sugerencia ? Gracias
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801//+54 9 223 5062169)
Responder Con Cita
  #9  
Antiguo 29-03-2015
nicolas77 nicolas77 is offline
Miembro
 
Registrado: may 2010
Ubicación: Mar del Plata, Bs As, Argentina
Posts: 15
Poder: 0
nicolas77 Va por buen camino
Estoy leyendo este interesante tema y me queda uno duda en la forma que Marc genera las claves unicas.

él propone:

ID + SUC
ejemplo:
10001
10101
...

me surge la duda porque no mejor asi:
SUC + ID
ejemplo:
01100
01101
...

de esta manera, tendria ordenado por codigo de sucursal las claves.

¿como lo ven?

gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Sugerencias para nueva aplicación diegofhernando Varios 3 15-04-2009 15:33:49
Sugerencias para pasar XML a Tabla MaMu Varios 0 01-11-2008 01:41:33
sugerencias para generar password torito Varios 7 10-06-2008 19:30:52
Sugerencias para programa 3D... Er_Manué Varios 2 30-10-2006 15:05:22
que usar para hacer replicacion pani_alex Conexión con bases de datos 2 22-04-2006 14:49:25


La franja horaria es GMT +2. Ahora son las 10:08:54.


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