Saber cuándo se comprueban las reglas de nivel de campo
Las reglas a nivel de campo se comprueban cuando se modifica el valor del campo. Al contrario que los desencadenadores, las reglas a nivel de campo se activan incluso cuando los datos se encuentran en búfer. Al trabajar con los datos en una ventana Examinar, en un formulario o en otra ventana, Visual FoxPro comprueba las reglas de nivel de campo al salir del campo correspondiente. Si el valor del campo no ha cambiado, la regla no se comprobará. Esto significa que puede desplazarse por los campos sin que el sistema valide su contenido.
Comprobación de las reglas a nivel de campo
Método de entrada de datos | Ventana o comando | Comprobación de la regla a nivel de campo |
---|---|---|
Interfaz de usuario | Ventana Examinar Formulario Otra ventana |
Al salir del campo, si el valor ha variado. (Si el valor no cambia, la regla no se comprueba). |
Comandos que no especifican campos | APPEND APPEND GENERAL APPEND MEMO BROWSE CHANGE DELETE EDIT GATHER |
Al cambiar el valor del campo, en el orden de definición de los campos. |
APPEND BLANK INSERT INSERT - SQL |
Al anexar o insertar el registro. | |
Comandos que especifican campos | UPDATE UPDATE - SQL REPLACE |
En el orden en que aparecen los campos en el comando. |
Validar valores a nivel de registro
Las reglas de validación a nivel de registro permiten controlar el tipo de información que el usuario puede introducir en los registros. Normalmente, las reglas de validación a nivel de registro comparan los valores de dos o más campos del mismo registro para asegurarse de que cumplen las reglas de empresa establecidas para la base de datos. Por ejemplo, puede utilizar una regla de validación a nivel de registro para asegurarse de que el valor de un campo sea siempre superior al de otro campo del mismo registro.
Para crear una regla de validación a nivel de registro y un mensaje de error personalizado
En la ficha Tabla del Diseñador de tablas, escriba la regla y el mensaje de error que desee en los cuadros Regla y Mensaje.
–O bien–
Utilice la cláusula CHECK de los comandos CREATE TABLE o ALTER TABLE.
Por ejemplo, puede querer asegurarse de que los empleados tengan 18 o más años en el momento de su contratación. En el código siguiente se agrega a la tabla employee
una regla de validación a nivel de registro y un texto de error para requerir que la fecha de contratación introducida en hire_date
sea mayor o igual que la fecha de nacimiento más 18 años:
ALTER TABLE employee SET CHECK ;
hire_date >= birth_date + (18 * 365.25) ;
ERROR "Employees must be 18 years or older by date of hire"
Si el usuario introduce un registro de empleado con una fecha no válida, Visual FoxPro mostrará un cuadro de diálogo de error con el mensaje de error personalizado definido y no actualizará el registro.
También puede utilizar la cláusula SET CHECK del comando ALTER TABLE para crear una regla de validación a nivel de registro. Debe asegurarse de que las reglas especificadas para los campos no entren en conflicto semántico con las definidas para la tabla. Visual FoxPro no comprueba la coherencia entre las expresiones a nivel de campo y a nivel de registro.
Vea también
Exigir reglas de empresa | Comprobar reglas de nivel de registro | Trabajar con tablas | Uso de desencadenadores | Crear desencadenadores | Restringir el acceso a los campos