|
|
|
|
- Presentación
- Creación de desencadenantes de servidor en el análisis
- Condición previa
- Tener en cuenta los desencadenantes del servidor
- Procedimientos almacenados relacionado a un trigger
- Comprobación de una Procedure almacenada llamada por un disparador
- Manejo de los disparos del servidor a través de la programación
- Las funciones de WLanguage
Disparadores de servidor
Disponible solo con este tipo de conexión
Los triggers del servidor son procedimientos almacenados ejecutados por el servidor antes o después de una operación de escritura realizada en un archivo de base de datos. En cuanto a los triggers estándar, hay dos tipos de triggers de servidor disponibles: - Los activadores "ANTES":
Un desencadenante "ANTES" se llama: - antes de ejecutar una función HFSQL ( HAdd , HModify , HDelete , ...).
- antes de ejecutar una función para administrar el controles Tabla basado en un archivo de datos.
Un activador "ANTES" puede utilizarse, por ejemplo, para comprobar la coherencia de los datos de las partidas de una Record. Con este tipo de disparador, se puede inicializar un Variable HFSQL para cancelar la ejecución de la función associated HFSQL.
- Los activadores "DESPUÉS":
Un desencadenante "DESPUÉS" se llama: - después de ejecutar una función HFSQL (excepto si el programa se interrumpió durante la ejecución de esta función).
- después de ejecutar una función para administrar controles Tabla basada en un archivo de datos.
Se puede utilizar un desencadenante "DESPUÉS" para gestionar la Process de errores, por ejemplo.
Características de los disparadores del servidor: - Varios disparadores del servidor pueden ser associated con el mismo archivo de datos.
- Los triggers que se definen en el servidor, se tienen en cuenta independientemente de la ejecución de la aplicación cliente.. Cualquier nuevo trigger definido en el servidor se tiene en cuenta automáticamente.
- Los disparadores del servidor se ejecutan:
Creación de desencadenantes de servidor en el análisis Condición previa Para crear un activador de servidor: - en la pestaña "Análisis", en el grupo "Creación", despliegue "Nuevo" y seleccione "Trigger".
- seleccione "Nuevo activador" en el menú contextual del panel "Análisis" desplegable.
- visualice la pestaña "Activadores HF" de la ventana del archivo de datos description y haga clic en "Crear un nuevo activador"
Estas diferentes opciones muestran la ventana de description del disparador del servidor. La ventana de description de un disparador se utiliza para especificar: - en la pestaña "General:
- el nombre del gatillo.
- el WLanguage Procedure almacenado que es associated con el disparador.
- el modo de liberación del trigger (ANTES o DESPUÉS de la ejecución de las funciones HFSQL).
- las funciones HFSQL que liberarán el trigger.
- en la pestaña "General:
- los archivos de datos associated con el disparador.
Observación: Los disparadores creados son Visible: - en el panel de análisis.
- en el gráfico de análisis directamente: si un servidor dispara un associated con un archivo de datos, se muestra un Icon específico: .
Tener en cuenta los desencadenantes del servidor Los triggers del servidor creados en el análisis se crean en el servidor: Los triggers instalados en el servidor serán automáticamente tenidos en cuenta por las aplicaciones cliente. Procedimientos almacenados relacionado a un trigger Un "disparador" almacenado Procedure no acepta ningún parámetro. Sin embargo, algunas variables de estado HFSQL se colocan antes de cada llamada: | | H.Nombre de archivo | Cadena de caracteres: Nombre lógico del archivo de datos cuyo disparador está activado. | H.Acción | Carácter inicializado a "A" para un disparo Antes y a "P" para un disparo Después. | Función de activación H. | Cadena de caracteres: Nombre de la función HFSQL que activó el trigger. | H.ToDo | Durante la ejecución de un trigger anterior:- cancelar la ejecución de la función HFSQL asignando "A" al estado HFSQL Variable: H.ToDo = "A". En este caso, la acción no se realiza y la función (HAdd, HModify, etc.) devuelve True (sin error).
- cancelar la ejecución de la función HFSQL actual asignando "E" al estado HFSQL Variable: H.ToDo = "E". En este caso, la acción no se realiza y la función (HAdd, HModify, etc.) devuelve False. El mensaje de error es el siguiente: "La acción en el archivo XXX fue interrumpida por el disparador".
| Observaciones: - Cuando un trigger "BEFORE" y un trigger "AFTER" son associated con una función HFSQL, si "BEFORE" cancela la ejecución de la función HFSQL (poniendo h.ToDo a "A"), "AFTER" no se ejecuta.
- En el código del Procedure almacenado se utiliza la palabra clave MiArchivo para identificar y manipular el nombre del archivo de datos sobre el que se ha utilizado el activador.
Importante: Para que un Procedure almacenado iniciado desde un trigger del servidor pueda acceder a los datos, debe utilizar HDeclareExternal. Esta función permite declarar las fuentes de datos que se utilizarán en los procesos de la Procedure almacenada. De hecho, cuando una Procedure almacenada se inicia desde el Centro control HFSQL, no hay ningún análisis actual: los datos de HFSQL Client/Server no son inmediatamente accesibles. Si no se utiliza HDeclareExternal en el código del Procedure almacenado, el Procedure provocará un error fatal, notificado en el registro de eventos del sistema. Comprobación de una Procedure almacenada llamada por un disparador Para hacer la prueba de un Procedure almacenado: - En el panel de análisis, seleccione la Procedure almacenada cuya prueba debe ser ejecutada.
- Seleccione "Ejecutar la prueba Procedure" en el menú contextual del Procedure almacenado.
- La ventana para introducir los parámetros de la Procedure se muestra. En esta ventana, usted puede:
- Escriba los parámetros de Procedure.
- Ejecutar la prueba del procedimiento.
Observación: esta ventana permite reiniciar la ejecución varias veces modificando los parámetros.
- Cuando se hace el test de Procedure:
- Se propone una actualización del Procedure almacenado si es necesario.
- El Procedure se inicia en el servidor.
- El valor de retorno de Procedure se muestra si es necesario.
Notas/limitaciones: - El puerto de depuración es el puerto 27281 de Default. Este puerto debe estar abierto en el firewall. Este puerto puede modificarse en el programa Archivo HFConf.ini.
- Para ejecutar la prueba de un Procedure almacenado, debe tener los derechos de depuración en la base de datos.
- Las trazas utilizadas en los procedimientos almacenados se muestran en la pantalla de "Panel "Traza del depurador.
- El código de Procedure almacenado puede contener puntos de ruptura: se iniciará el depurador.
- Los elementos desplegados en el servidor se utilizan durante la prueba.
- La función InTestMode devuelve True.
Manejo de los disparos del servidor a través de la programación Las funciones de WLanguage Se utilizan varias funciones para manipular que el servidor activa:
Estas funciones son funciones avanzadas.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|