PDA

Ver la Versión Completa : Validación de campos


sisne
11-04-2010, 02:06:07
Holas foreros:

Quisiera saber como se realiza para validar campos sin programar.
Estoy programando usando Base de Datos SQL Server.
Tengo varios campos que si no se se llenan de informacion pues no se deben guardar... En mi programa puse esto:

If TablaNombre.Text='' then
Message('Error Falta escribir nombre....');


El componente Table1 dispone de la propiedad Constraints donde pueden definirse tantas reglas como queramos. Para verlo con un ejemplo, vamos a hacer que el usuario no pueda guardar el cliente si no ha introducido su nombre.

Para definir una regla coloque : (con TClientes):

- Pulsamos el botón [...] en la propiedad Constraints.

- Pulsamos el botón Add New.

- En la propiedad CustomConstraint definimos la condición de error mediante SQL:

NOMBRE IS NOT NULL

- En el campo ErrorMessage del mismo Constraint ponemos el mensaje de error:

No ha introducido el nombre del cliente


Segui los pasos pero me aparece error....
Alguien por favor?

sisne
11-04-2010, 06:30:47
Holas...
Alguien podria facilitarme contrario algun manual al respecto???
Mi codigo esta grandecito y pues algunos campos como ese ya no lo quiero colocar...quiero validar en propiedades directamente...

Alguien?

gracias

ecfisa
12-04-2010, 07:23:11
Hola sisne.
Si en la creación de la tabla, declaraste el campo como no nulo:

CREATE TABLE PERSONA (
PERSONA_ID INTEGER ,
NOMBRE VARCHAR(40) NOT NULL,
NACIMIENTO SMALLINT,
PRIMARY KEY(PERSONA_ID)
);

No necesitas programar nada, puesto que Delphi va a detectar esos campos (NOT NULL) y va a poner automáticamente su propiedad Required a True. Por lo que cuando quieras guardar, Delphi no enviará los datos al servidor y la propia aplicación te va a elevar una excepcion.
Tomando en cuenta el ejemplo de arriba:
Si olvidaste ingresar el campo NOMBRE, te avisará con el siguiente mensaje:"Es necesario que el campo 'NOMBRE' contenga algún valor"

Saludos.

sisne
12-04-2010, 07:34:04
Hola ecfisa,
bueno esa parte obvie....
OK. Cmabiaré a not null los valores...

Gracias!