Share via


Exigir reglas de empresa

Puede exigir reglas de empresa para la entrada de datos si crea reglas a nivel de campo y a nivel de registro, denominadas reglas de validación, para controlar los datos introducidos en los campos y registros de las tablas de base de datos. Las reglas a nivel de campo y a nivel de registro comparan los valores introducidos con expresiones definidas previamente. Si el valor introducido no satisface los requisitos de la regla, se rechazará el valor. Las reglas de validación sólo pueden darse para las tablas de base de datos.

Las reglas a nivel de campo y a nivel de registro permiten controlar el tipo de información introducido en una tabla, tanto si el acceso a los datos se realiza mediante una ventana Examinar, un formulario o mediante programación. Las reglas permiten exigir su cumplimiento en un campo con menos código que si se escribiera la expresión de la regla en una cláusula VALID de un formulario o en un fragmento de código del programa. Además, las reglas establecidas en una base de datos se exigirán a todos los usuarios de la tabla, independientemente de los requisitos de la aplicación.

También puede crear índices candidatos o principales que eviten entradas duplicadas en un campo, y desencadenadores que exijan la integridad referencial o que realicen otras acciones cuando se modifica la información de la base de datos.

Cuándo se exigen las restricciones

Las restricciones de la base de datos se eligen basándose en el nivel en el que se desea exigir una regla de empresa o de integridad referencial, y en la acción que hace que la restricción se active. En la tabla siguiente se enumeran las restricciones de validación de datos en el orden en que las exige el motor de Visual FoxPro, el nivel al que se aplican y cuándo activa el motor la validación.

Mecanismo de exigencia Nivel Activación
Validación NULL Campo o columna Al salir de un campo o columna en una ventana Examinar, o cuando el valor del campo cambia debido a INSERT o REPLACE.
Reglas a nivel de campo Campo o columna Al salir de un campo o columna en una ventana Examinar, o cuando el valor del campo cambia debido a INSERT o REPLACE.
Reglas a nivel de registro Grabar Al producirse la actualización del registro.
Índice candidato o principal Grabar Al producirse la actualización del registro.
Cláusula VALID Formulario Al salir del registro.
Desencadenadores Tabla Al cambiar los valores de la tabla a causa de un evento INSERT, UPDATE o DELETE.

Las restricciones se activan en el orden en que aparecen en la tabla. La primera infracción de una prueba de validación detiene el comando correspondiente.

Los índices candidatos y principales se tratan en la sección Controlar los valores duplicados.

Limitar los valores de un campo

Cuando desee controlar el tipo de información que un usuario puede introducir en un campo y sea posible validarlo independientemente de las restantes entradas del registro, puede utilizar una regla de validación a nivel de campo. Por ejemplo, puede utilizar una regla de validación a nivel de campo para asegurarse de que el usuario no escriba un número negativo en un campo que sólo debe contener valores positivos. También puede utilizar una regla a nivel de campo para comparar los valores introducidos en un campo con los de otra tabla.

No debe crear reglas específicas de la aplicación a nivel de campo o a nivel de registro. Utilícelas para exigir reglas de integridad de datos y reglas de empresa que sean siempre aplicables a la información de la base de datos, independientemente de quién tenga acceso a la misma. Por ejemplo, puede crear una regla que compare el valor de la entrada del campo postal_code de una tabla con una tabla de búsqueda que contenga los códigos abreviados de su país o región, y que rechace los valores que no existan como abreviatura válida de código postal.

Para crear una regla a nivel de campo

  1. Abra una tabla en el Diseñador de tablas.

  2. En el Diseñador de tablas, seleccione el nombre del campo para el que desea establecer una regla.

  3. Elija el botón del cuadro de diálogo ubicado junto al cuadro Regla.

  4. En el Generador de expresiones, cree la expresión de validación y elija Aceptar.

  5. En el cuadro Mensaje, escriba el mensaje de error entre comillas.

  6. Elija Aceptar.

    –O bien–

  • En el Diseñador de tablas, escriba la expresión de la regla en el cuadro Regla del área Validación de campos.

    –O bien–

  • Utilice la cláusula CHECK del comando CREATE TABLE.

    –O bien–

  • Utilice la cláusula SET CHECK del comando ALTER TABLE.

Por ejemplo, el código siguiente agrega a la tabla orditems una regla de validación a nivel de campo que requiere que el número introducido en el campo quantity sea mayor o igual que 1:

ALTER TABLE orditems 
    ALTER COLUMN quantity SET CHECK quantity >= 1

Cuando el usuario intente introducir un valor menor que 1, Visual FoxPro mostrará un mensaje de error y rechazará el valor.

Puede personalizar el mensaje que aparece cuando se infringe la regla si agrega texto de validación al campo. El texto especificado se mostrará en lugar del mensaje de error predeterminado.

Para agregar un mensaje de error personalizado a una regla a nivel de campo

  • En el Diseñador de tablas, escriba el mensaje de error que desee en el cuadro Mensaje del área Validación de campos.

    –O bien–

  • Utilice la cláusula opcional ERROR con la cláusula CHECK de los comandos CREATE TABLE o ALTER TABLE.

Por ejemplo, el código siguiente agrega una regla de validación a nivel de campo para la tabla orditems que requiere que los números introducidos en la columna quantity sean mayores o iguales que 1 y además define un mensaje de error personalizado:

ALTER TABLE orditems ;
   ALTER COLUMN quantity SET CHECK quantity >= 1 ;
   ERROR "Quantities must be greater than or equal to 1"

Cuando el usuario intente escribir un valor menor que 1, Visual FoxPro mostrará un cuadro de diálogo de error con el mensaje de error personalizado que usted ha definido y rechazará el valor. También puede utilizar la cláusula SET CHECK del comando ALTER TABLE con la cláusula opcional ERROR para crear un mensaje de error personalizado.

Vea también

Controlar la presentación de un campo | Saber cuándo se comprueban las reglas de nivel de campo | Trabajar con tablas | Crear valores predeterminados de campo | Comprobar reglas de nivel de registro