Share via


Crear valores predeterminados de campo

Si desea que Visual FoxPro llene automáticamente el contenido de un campo al agregar un nuevo registro, puede crear un valor predeterminado para ese campo. El valor predeterminado se aplica al introducir datos mediante un formulario, en una ventana Examinar, en una vista o mediante programación, y permanece en el campo hasta que se escriba un nuevo valor.

Los valores predeterminados se crean con el Diseñador de tablas o a través del lenguaje. Puede especificar valores predeterminados para todos los tipos de datos, excepto General.

Para asignar un valor predeterminado a un campo de una tabla de base de datos

  1. En el Diseñador de bases de datos, seleccione la tabla.

  2. En el menú Base de datos, elija Modificar.

  3. En el Diseñador de tablas, seleccione el campo al que desea asignar el valor predeterminado.

  4. En el cuadro Valor predeterminado, escriba el valor de campo que desea mostrar en todos los nuevos registros (escriba entre comillas los campos de caracteres).

  5. Elija Aceptar.

    –O bien–

Por ejemplo, puede estimar conveniente que su aplicación limite la mercancía que puede pedir un nuevo cliente hasta que haya tenido tiempo de realizar una comprobación de su crédito y determinar la cantidad que desea autorizarle. En el ejemplo siguiente se crea un campo maxordamt con un valor predeterminado de 1000:

CREATE TABLE customer (cust_id C(6), company C(40), contact C(30), ;
                maxordamt Y(4) DEFAULT 1000)

Si la tabla customer ya incluye la columna maxordamt, podrá agregar un valor predeterminado para la columna con el comando siguiente:

ALTER TABLE customer ALTER COLUMN maxordamt SET DEFAULT 1000

Usar valores predeterminados para acelerar la entrada de datos

Puede utilizar valores predeterminados para acelerar la entrada de datos por parte de los usuarios de la aplicación, permitiéndoles así omitir un campo si no desean introducir en él un valor distinto. Por ejemplo, si en su negocio trata principalmente con clientes nacionales, puede hacer que el campo country/region de la tabla customer de una base de datos se rellene automáticamente con el nombre de su país o región. Al escribir el registro de un cliente extranjero, puede sobrescribir el nombre de su país con el del país o región del cliente.

Sugerencia   Si alguna de las reglas de empresa de la aplicación requiere que un campo contenga siempre un valor, el uso de un valor predeterminado ayudará a asegurar que se cumpla una regla concreta a nivel de campo o a nivel de registro.

Si quita o elimina una tabla de una base de datos, todos los valores predeterminados de la tabla se eliminarán de la base de datos. Los procedimientos almacenados a los que haga referencia el valor predeterminado quitado o eliminado permanecerán incluso después de la eliminación.

Cuando no especifique un valor predeterminado, se insertará un valor en blanco (tal y como se define para cada tipo de datos), salvo en el caso en que esté activado SET NULL. De esta forma se mantiene la compatibilidad con el código de FoxPro de versiones anteriores que pueda conservar.

Puede indicar .NULL. como valor predeterminado si desea que el campo utilice valores NULL. Esté activado o no SET NULL, si utiliza .NULL. como valor predeterminado, Visual FoxPro insertará .NULL. para todos los comandos excepto APPEND BLANK.

Valores predeterminados permitidos

Puede especificar valores predeterminados escalares (por ejemplo, “un número”), o expresiones que se evalúen como una cantidad escalar. También puede especificar cualquier expresión de Xbase válida que devuelva un valor coherente con el tipo de datos del campo.

Visual FoxPro evalúa el tipo de datos de las expresiones cuando se cierra la estructura de la tabla. Si el tipo de datos no coincide con el tipo de campo asociado, Visual FoxPro generará un error. Si la expresión es una función definida por el usuario (FDU) o contiene una FDU, no se evaluará.

Al crear el valor predeterminado por medio del lenguaje, los comandos CREATE TABLE y ALTER TABLE generarán un error cuando los tipos de datos no coincidan. Si la expresión es una FDU o contiene una FDU, no se evaluará al ejecutar CREATE y no se generará ningún error.

Cuándo se aplican los valores predeterminados

Los valores predeterminados se evalúan (si es necesario) y se colocan en los campos correspondientes cuando se ejecutan los comandos APPEND, APPEND BLANK o INSERT.

Al asignar valores con los comandos APPEND FROM o INSERT** - SQL, Visual FoxPro asignará valores predeterminados a todos los campos que no los tengan asignados explícitamente. Los comandos APPEND FROM e INSERT - **SQL también respetan los valores predeterminados. Sin embargo, cuando se utiliza alguno de estos comandos, los valores predeterminados no sobrescriben a los valores existentes en los campos. Si los campos anexados o insertados contienen valores, los valores existentes se conservarán al anexar o insertar el registro, y no se utilizará el valor predeterminado.

Usar valores predeterminados para rellenar automáticamente campos NOT NULL

Los valores predeterminados son especialmente útiles para llenar automáticamente los campos que no permiten valores NULL. Al agregar un nuevo registro, los valores predeterminados se aplican en primer lugar y después se comprueba cada campo según su orden de definición para determinar si falta información. Así se asegura que los campos designados como NOT NULL puedan rellenarse con valores predeterminados antes de aplicar la restricción NOT NULL.

Especificar una máscara de entrada

Al especificar una máscara de entrada, define la puntuación, el espacio y otros atributos de formato de valores que se introducen en el campo. Los valores se almacenan así de una forma uniforme que puede reducir los errores de entrada de datos, haciendo que se procesen de forma más eficaz. Por ejemplo, agregar una máscara a un campo numérico que almacena números de teléfono ayuda al usuario a rellenar rápidamente el campo, ya que la máscara proporciona la puntuación y los espacios.

Para proporcionar una máscara de entrada

  • En el Diseñador de tablas, escriba la máscara en el cuadro Máscara de entrada en el área Mostrar.

    –O bien–

  • Use la función DBSETPROP( ) para establecer la propiedad InputMask.

    Por ejemplo, el código siguiente especifica una máscara de entrada para una fecha:

    DBSetProp("orders.postalcode","field","InputMask", "99999-9999")
    

Vea también

Elegir los tipos de datos | Controlar la presentación de un campo | Trabajar con tablas | Exigir reglas de empresa | Diseñador de tablas | CREATE TABLE | Restringir el acceso a los campos