Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   OTRO: Errores en Base de Datos (https://www.clubdelphi.com/foros/showthread.php?t=51433)

FelipeDiaz 15-12-2007 05:56:16

OTRO: Errores en Base de Datos
 
Hola a todos nuevamente, .... aunque he avanzado bastante en el tema de errores,.... me encuentro con otro que no se como capturar.

La situacion es esta.
Tengo un BDGrid que me muestra y me permite editar los valores de los descuentos.

He establecido un Check en Firebird que permita solo entradas cuyo valor para el descuento se establezca asi: 0 <= Desc <100.

Aqui no esta el problema....Cualquier violacion a esta restriccion la puedo capturar.

El problema es que el campo esta definido como un NUMERIC(4,2).

Y si el usuario ingresa 300 por ejemplo sale un mensaje diciendo:

Exception Class EDataBaseError y me dice que el rango para ese campo debe estar entre -327,67 y 327,67.

Intenté con los eventos..

OnChange, OnValidate, colocando la instruccion:

if (sender.Value < 0) or (sender.Value >= 100) then
DatabaseError('El valor debe ser mayor igual a 0 y menor que 100');

Pero esta validacion se efectua mientras el valor este en el rago permitido (osea entre -327,67 y 327,67.), si el usuario digita por ejemplo 243535 y y se genera un post, aparece el error. Si escribe 200, sale mi mensaje.

NO SE donde capturar ese error. Alguien me puede ayudar !!!
en que evento del DBGrid o del Campo ?

Saludos,

Felipe Diaz

P.D. Creo que despues de este...ya no molestaré mas con los Errores.

Minotaure 04-01-2008 09:47:33

OnBeforePost
 
No sé si será un poco tarde ya o lo habrás solucionado.

Si he entendido bien, lo que podrías hacer es, en el evento OnBeforePost del TableSet (o del componente que utilices) comprobar el valor introducido en el campo que quieras controlar. En caso de que este fuera del rango deseado mostrar el mensaje y cancelar la edición o inserción.


La franja horaria es GMT +2. Ahora son las 03:32:31.

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