Ver Mensaje Individual
  #3  
Antiguo 11-09-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola Iván.

Creo que todos los que hemos programados nuestros propios motores de replicación nos hemos basado en este documento, es todo un clásico (y muy bien explicado). Léelo y no vaciles en consultar cualquier duda.

http://www.ibphoenix.com/main.nfs?a=...ge=ibp_howto10

El motor de Firebird ha evolucionado bastante en estos años, así que algunas cosas se pueden simplificar. El principal cambio que te recomiendo es utilizar un Rol en lugar del nombre de Usuario, para detectar cuando se está modificando una tabla desde dentro del motor de replicación.

Es decir en los Triggers que se hacen para los sistemas bidireccionales, sustituímos la linea :

IF (USER <> "REPLICATE") THEN

por la línea :

IF (CURRENT_ROLE <> "REPLICATE") THEN

La ventaja de usar un Rol en lugar de un Usuario, es que deberías asignar derechos sobre todas las tablas para el nuevo usuario REPLICACION, cosa que es laboriosa y es fácil olvidarte en el futuro a medida que añades tablas al sistema. En cambio no es necesario añadir derechos a las tablas en los roles (puesto que el usuario que vienes utilizando ya tiene acceso a esas tablas).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita