Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Debugger Exception Notification (https://www.clubdelphi.com/foros/showthread.php?t=67242)

sisne 07-04-2010 07:27:03

Debugger Exception Notification
 
Holasss!!!

En las properties de la Tabla1, despues de colocar su DataBaseName y Elegir el TableName y Active a true. Me voy a la opcion de Constraints[..] se me abre una ventanita Editing Table1.Constraints y de ahi me voy a sus propiedades en:
CustomConstraint coloco: NombreM is not NULL
ErrorMessage coloco: No ha introducido el nombre de la materia.
Segun lei, que al guardar(post) los datos de Tabla1 no deberia dejarme si es que el campo NombreM lo dejo en blanco, si es que esta sin informacion pues al momento de guardar deberia aparecerme como mensaje diciendo que:No ha introducido el nombreM de la materia.
Lo que me aparece al momento de guardar(post) es:

Debugger Exception Notification
Proyect PBecarios.exe raised exception class EDBEngineError with menssage No ha introducido el codigo de la materia'. Process stopped. Use Step or Run to continue.

Pienso que me olvidé de activar o colocar algo mas....
Alguien tiene conocimiento?
Por si acaso las tablas las realice en SQL server, con ese procedimiento quiero evitar de colocar algun codigo para cada DBEdit que si esta vacio el campo no me guarde, habiendo opciones de DELPHI q sin hacer codigo me muestre el mismo mensaje que haciendo el codigo.
SOn facilidades que Delphi tiene y quiero aprovecharlas.

Alguien?

Gracias

ecfisa 08-04-2010 06:20:27

Hola sisne.

Aparentemente está detectando el error de campo requerido para código de materia primero.
Es la clave primaria ?

Saludos.

sisne 08-04-2010 08:53:03

Hola ecfisa,

Comentarte que el campo mencionado no es la clave primaria.

Explicando un poco más sobre mi problema...
Lo que hice fue... segui las instrucciones, pero me aparece el mensaje que antes mencioné..

Cita:

Otra de las malas costumbres que solemos cometer en los programas es controlar los datos que introduce o no el usuario en el registro, cuya lógica la hacemos en el formulario. Esto tiene el inconveniente en que si en otro formulario hay que acceder a la misma tabla hay que volver a controlar las acciones del usuario.

Para evitar esto, tenemos que definir también en la capa de lógica de negocio las reglas sobre las tablas y los campos, lo que se llama comunmente validación de campos. 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 en un ClientDataSet hay que hacer lo siguiente (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

Con esta regla definida, si en cualquier parte de nuestro programa hacemos un Post de la tabla clientes y esta vacío el campo NOMBRE el programa lanzará un mensaje de error sin tener que programar nada. Antes teníamos que hacer esto en el botón Aceptar del formulario para validar los campos. Con los Constraints las validadiones las hacemos en sin tener que programar.

Espero que con esto, puedan guiarme...gracias!


La franja horaria es GMT +2. Ahora son las 18:14:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi