AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • ¿Qué archivos de datos se pueden replicar?
  • Parámetros de sincronización
  • Bloqueo de registros durante la replicación basada en el registro
  • Errores duplicados y/o errores de integridad
  • Las variables se inicializan automáticamente en el WLanguage Procedure
  • Ejemplo: Replicando los datos incluso si se produce un conflicto (usando un WLanguage Procedure):
  • Función de replicación y WithSpace
  • Vida útil de la réplica móvil
  • Replicación y filtro
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
HSynchronizeReplica( Función)
ODBCOLE DBNo disponible con estos tipos de conexión
Sincroniza la réplica maestra y la réplica del suscriptor.: las operaciones realizadas en una de las réplicas se transfieren a la otra réplica.
Tsu función puede ser usada en una replicación basada en log (entre archivos de datos HFSQL) o una replicación universal.
Observaciones:
  • En el caso de una replicación basada en un registro, sólo se tendrán en cuenta los archivos de datos del análisis con la opción "Gestionar la replicación de este archivo" marcada.
  • HFSQL Client/Server Sólo la replicación universal funciona con los archivos de datos de HFSQL Client/Server.
Advertencia
A partir de la versión 17, los archivos de replicación creados con una aplicación o un sitio en la versión 17 (o posterior) no pueden ser gestionados por una aplicación o un sitio en la versión 16 (o anterior).
Las aplicaciones o los sitios en la versión 17 (o posterior) continúan a manipular los ficheros de replicación creados con una aplicación o un sitio en la versión 16 (o anterior).
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5
// "Entering Orders" application for salesmen
// "[Enter the orders in the database]" button
// (the database is found on "X:\CORPDATA")
HSynchronizeReplica("X:\CORPDATA", "C:\SUBSCRIBER", rplToMaster)
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5
// "Catalog" application for salesmen
// "[Retrieve the new references]" button
// (the database is found on "X:\CORPDATA")
HSynchronizeReplica("X:\CORPDATA", "", rplToSubscriber)
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5
// In Montpellier: Prepare to send messages to Paris
HCreateMovableReplica("P:\MSG\MSG.RPM", "Paris", "C:\Temp\MsgMPL.WDZ")
// Send the file (by FTP for example)
FTPSend(ConnectionNum, "c:\temp\MsgMPL.WDZ", ...
"FTP.PCSOFT_PARIS.FR\MSG\MsgMPL.WDZ")
----------------
// In Paris: Retrieve the messages from Montpellier
HSynchronizeReplica("Z:\MSG", "\\FTPSERVER\MSG\MsgMPL.WDZ", rplToMaster)
Sintaxis

Sincronización con la gestión de conflictos de automatic Ocultar los detalles

<Result> = HSynchronizeReplica(<Master replica> , <Subscriber replica> , <Replication direction> [, <Management of conflicts>])
<Result>: booleano
  • True si la operación fue exitosa,
  • False en caso contrario.
<Master replica>: Cadena de caracteres
Ubicación de la réplica maestra. Dependiendo del tipo de replicación y de la dirección, este parámetro puede corresponder a:
  • la ruta del archivo de replicación (archivo xxxx.RPM) para la base de datos maestra.
  • el nombre del archivo móvil creado por HCreateMoveableReplica.
  • una cadena vacía ("""). Los ficheros de datos actuales se consideran la base de datos maestra. El archivo correspondiente a la réplica maestra (.RPM) se busca en el directorio de replicación especificado en el análisis (subdirectorio RPL de archivos de datos por Default), o en el directorio especificado con HChangeRplDir.
En la mayoría de los casos, esta ruta corresponde o bien a la ruta completa de un fichero situado en un directorio de red, o bien a la ruta de una réplica móvil (llave USB, anexo Email, fichero recuperado por FTP).
Para obtener más información, consulte los comentarios.
<Subscriber replica>: Cadena de caracteres
Ubicación de la réplica del abonado. Dependiendo del tipo de replicación y de la dirección, este parámetro puede corresponder a:
  • el ruta del archivo de replicación (archivo xxxx.RPL) para la base de datos de suscriptores.
  • el nombre del archivo móvil creado por HCreateMoveableReplica
  • una cadena vacía ("""). Los archivos de datos actuales se consideran como la base de datos de suscriptores.. El archivo correspondiente a la réplica del suscriptor (.RPL) se busca en el directorio de replicación especificado en el análisis (subdirectorio RPL de los archivos de datos por Default), o en el directorio especificado por HChangeRplDir.
En la mayoría de los casos, esta ruta corresponde o bien a la ruta completa de un fichero situado en un directorio de red, o bien a la ruta de una réplica móvil (llave USB, anexo Email, fichero recuperado por FTP).
Para obtener más información, consulte los comentarios.
<Replication direction>: Constante de tipo Integer
Dirección en la que se realizará la replicación:
rplBidirectionalActualizar la base de datos maestra Y la base de datos de suscriptores.

Replicación universal: la replicación bidireccional no está disponible.
rplToMasterActualizar la base de datos maestra según la base de datos de suscriptores.

<Réplica maestra> corresponde a la réplica maestra, <Réplica de suscriptor> corresponde a la réplica móvil creada a partir de la base de datos de suscriptores.
rplToSubscriberActualizar la base de datos de suscriptores según la base de datos maestra.

<La réplica maestra corresponde a la réplica móvil creada a partir de la base de datos maestra, la réplica de suscriptor corresponde a la réplica de suscriptor.
<Management of conflicts>: Constante opcional de tipo Integer
Constante que indica el modo de gestión de los conflictos:
rplMasterFirst
(Valor predeterminado)
Los datos encontrados en la base de datos maestra tienen prioridad durante la reproducción.
rplMostRecentFirstLos datos más recientes tienen prioridad. Atención, los datos más recientes se evalúan en función de la hora de la réplica del abonado.
rplSubscriberFirstLos datos encontrados en la base de datos de suscriptores tienen prioridad durante la reproducción.
Atención: Por Default, el maestro tiene como prioridad : al realizar una reproducción de suscriptor a maestro, los datos maestros no se actualizarán. Le recomendamos que utilice otra constante (rplMostRecentFirst por ejemplo).

Sincronización con la gestión de conflictos personalizada (WLanguage Procedure) Ocultar los detalles

<Result> = HSynchronizeReplica(<Master replica> , <Subscriber replica> , <Replication direction> [, <Filter procedure>])
<Result>: booleano
  • True si la operación fue exitosa,
  • False en caso contrario.
<Master replica>: Cadena de caracteres
Ubicación de la réplica maestra. Dependiendo del tipo de replicación y de la dirección, este parámetro puede corresponder a:
  • el ruta del archivo de replicación (archivo xxxx.RPM) para la base de datos maestra.
  • el nombre del archivo móvil creado por HCreateMoveableReplica.
  • una cadena vacía ("""). Los ficheros de datos actuales se consideran como la base de datos maestra.. El archivo correspondiente a la réplica maestra (.RPM) se busca en el directorio de replicación especificado en el análisis (subdirectorio RPL de archivos de datos por Default), o en el directorio especificado con HChangeRplDir.
En la mayoría de los casos, esta ruta corresponde a la ruta completa de un fichero situado en un directorio de red o a la ruta de una réplica móvil (llave USB, anexo Email, fichero recuperado por FTP).
Para más detalles, consulte las observaciones.
<Subscriber replica>: Cadena de caracteres
Ubicación de la réplica del abonado. Dependiendo del tipo de replicación y de la dirección, este parámetro puede corresponder a:
  • el ruta del archivo de replicación (archivo xxxx.RPL) para la base de datos de suscriptores.
  • el nombre del archivo móvil creado por HCreateMoveableReplica
  • una cadena vacía ("""). Los archivos de datos actuales se consideran como la base de datos de suscriptores.. El archivo correspondiente a la réplica del suscriptor (.RPL) se busca en el directorio de replicación especificado en el análisis (subdirectorio RPL de los archivos de datos por Default), o en el directorio especificado por HChangeRplDir.
En la mayoría de los casos, esta ruta corresponde a la ruta completa de un fichero situado en un directorio de red o a la ruta de una réplica móvil (llave USB, anexo Email, fichero recuperado por FTP).
Para obtener más información, consulte los comentarios.
<Replication direction>: Constante de tipo Integer
Dirección en la que se realizará la replicación:
rplBidirectionalActualizar la base de datos maestra Y la base de datos de suscriptores.

Replicación universal: la replicación bidireccional no está disponible.
rplToMasterActualizar la base de datos maestra según la base de datos de suscriptores.

<La réplica maestra corresponde a la réplica móvil creada a partir de la base de datos maestra, la réplica de suscriptor corresponde a la réplica de suscriptor.
rplToSubscriberActualizar la base de datos de suscriptores según la base de datos maestra.

<Réplica maestra> corresponde a la réplica maestra, <Réplica de suscriptor> corresponde a la réplica móvil creada a partir de la base de datos de suscriptores.
<Filter procedure>: Nombre de procedimiento opcional
Nombre de un WLanguage Procedure que se encuentra en el proyecto WINDEV o WEBDEV (este nombre debe ser incluido entre comillas). Esta Procedure debe ser creada en su aplicación. Este Procedure no espera ningún parámetro.
Este procedimiento se llama antes de cada operación realizada en el archivo de destino. Varias variables pueden ser usadas en este Procedure.
Si este procedimiento devuelve False, la operación no se realiza. Este Procedure está acostumbrado:
  • filtrar los registros que no deben ser replicados.
  • gestionar los conflictos, ajustando los valores antes de que se produzca un error duplicado.
Para más detalles, véase el ejemplo de HSynchronizeReplica.
Observaciones
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5Conectores Nativos

¿Qué archivos de datos se pueden replicar?

Se puede realizar la sincronización:
  • entre dos bases de datos relacionado por red.
  • entre una base de datos y una réplica móvil (creada por HCreateMoveableReplica).
No se puede realizar ninguna réplica hacia una réplica móvil. Debe crear una réplica móvil con la base de datos y replicar desde la base de datos remota.
Atención: Si realiza una actualización de automatic de sus archivos de datos, todas las réplicas deben estar sincronizadas antes de esta operación. De lo contrario, todas las modificaciones realizadas desde la última sincronización y la modificación de automatic se perderán.

Parámetros de sincronización

El tabla a continuación presenta las diferentes combinaciones de parámetros que deben utilizarse según el tipo y la dirección de la replicación:
Dirección de replicación<Réplica del Maestro<Réplica de suscriptorDirección de repetición> <Dirección de repetición
Replicación de maestro a suscriptor
Esta replicación se realiza en el ordenador del abonado
Nombre de la réplica móvil (*.RPA) creada a partir del maestro, con su eventual rutaNombre de la réplica del suscriptor (*.RPL), con su eventual ruta.rplToSubscriber
Replicación de suscriptor a maestro
Esta replicación se realiza en el equipo maestro
Nombre de la réplica maestra (*.RPM), con su eventual ruta.Nombre de la réplica móvil (*.RPA) creada a partir del suscriptor, con su eventual ruta.rplToMaster
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5

Bloqueo de registros durante la replicación basada en el registro

Durante la replicación, el archivo JournalOpération.Fic se bloquea: no puede escribir, modificar o guardar registros en los archivos con registros en la base de datos de destino.
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5

Errores duplicados y/o errores de integridad

Si se produce un error de duplicación o de integridad, se activa la mecanismo estándar para la gestión de errores de automatic. Si el motor HFSQL devuelve un error, la replicación se interrumpe: sólo se reproduce una parte de los datos.
Replicación universal: Si se produce un error de integridad durante la replicación, esta continúa, pero la función devuelve False.
Para obtener los detalles de los errores, debe leer los sub-errores HFSQL con HError (con las constantes hSubErrFirst y hSubErrNext) y luego llamar a HErrorInfo.
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5Conectores Nativos

Las variables se inicializan automáticamente en el WLanguage Procedure

Variableescribir a máquinadescription y el valor
Archivo RPL.fileCadena de caracteresNombre del archivo cuyos datos se replicarán
Operación RPLConstante de tipo IntegerOperación HFSQL que será replicada:
  • rplHAdd: replicar una adición
  • rplHModify: replicar una modificación
  • rplHDelete: replicar una supresión
Conflicto RPLConstante de tipo IntegerIndica si se ha detectado un conflicto durante la replicación.. Los valores posibles son los siguientes:
  • rplNoConflict: no se detectó ningún conflicto
  • rplModifyConflict: El Record fue modificado tanto en la réplica de origen como en la de destino
  • rplDeleteConflict: La Record fue borrada de la réplica de destino y fue modificada o borrada en la réplica de origen.
Para forzar la replicación si se produce un conflicto, inicialice la variable RPL.Conflict con la variable rplNoConflict.

De lo contrario, la replicación se realizará sólo si el conflicto es un conflicto de modificación y si los datos a replicar provienen de la base de datos maestra.
Dirección RPLConstante de tipo IntegerIndica la dirección de la replicación (useful para una replicación bidireccional):
  • rplToSubscriber: replicación de maestro a suscriptor
  • rplToMaster: replicación de suscriptor a maestro
Número de operación RPLIntegroNúmero de la operación actual. Este valor se incluye entre 1 y RPL.OperationMax. Este Variable le permite manejar fácilmente una barra de progreso.
Operación RPLMaxIntegroNúmero total de operaciones a replicar. Este Variable le permite manejar fácilmente una barra de progreso.
RPL.SourceAliasCadena de caracteresNombre del alias de origen del archivo replicado (RPL.File). Este archivo contiene los valores de los elementos que serán copiados (HAdd) o añadidos (HModify) en el archivo actualmente replicado.
RPL.TargetAliasCadena de caracteresNombre del alias de destino del archivo replicado (RPL.File). Este archivo contiene los valores de los elementos antes de realizar la copy o la eliminación en el archivo actualmente replicado.
WEBDEV - Código ServidorAjaxHFSQL ClassicHyper File 5.5Conectores Nativos

Ejemplo: Replicando los datos incluso si se produce un conflicto (usando un WLanguage Procedure):

Este ejemplo se utiliza para forzar la replicación de datos incluso si se produce un conflicto de modificación.. Para ello, solo se debe forzar el valor de la variable RPL.Conflict con la constante rplNoConflict.
IF RPL.Conflict = rplModifyConflict THEN
RPL.Conflict = rplNoConflict
RETURN True
END

Función de replicación y WithSpace

La replicación no es compatible con WithSpace en el código de la aplicación cliente. Esta función cambia el comportamiento de HFSQL. El uso de esta función en la aplicación cliente puede afectar a la eficiencia de la replicación.
A partir de la versión 21 actualización 3 (versión 210065), las funciones de sincronización (replicación universal programada o asistida) devuelven un error a la aplicación cliente si se ha aplicado WithSpace a al menos uno de los archivos replicados.

Vida útil de la réplica móvil

La réplica se destruye al final de la replicación en caso de éxito. La reproducción de la réplica provocará errores (por ejemplo, una adición provoca un error de duplicación). La réplica utiliza el archivo .syn que también se destruye (otro archivo .syn lo sustituye con la información inútilmente borrada).
Una réplica "móvil" se traslada (copia) entre el maestro y el abonado o entre el abonado y el maestro.. Para almacenar un archivo, basta con almacenar el archivo fuente (el creado por HCreateMoveableReplica).

Replicación y filtro

Al navegar por los datos a replicar, la replicación tiene en cuenta los filtros colocados por HFilter.
Por lo tanto, para una replicación universal programada sin servidor de replicación, se puede utilizar HFilter para limitar los datos a sincronizar.
Por el contrario, para una replicación realizada mediante un servidor de replicación, se deben desactivar todos los filtros antes de realizar la replicación con la función HSynchronizeReplica.
Observación: HClose sirve para borrar todos los filtros definidos por HFilter en un archivo de datos.
Componente: wd290rpl.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 18/03/2023

Señalar un error o enviar una sugerencia | Ayuda local