PDA

Ver la Versión Completa : OTRO: Errores en Base de Datos


FelipeDiaz
15-12-2007, 05:56:16
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
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.