Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2005
tramjauer tramjauer is offline
Miembro
 
Registrado: ene 2005
Posts: 42
Poder: 0
tramjauer Va por buen camino
Question Como validar el precio en un DBtext (Double)

Muy buenas a todos, trabajo con Delphi 7 i access y para la connexion utilizo los componentes ADO. Mi duda, ya dicha es que no se como validar i donde poner el codigo para que se valide un DBedit que contiene el precio que es un Double. Para saber si el precio que he insertado o modificado es correcto utilizo lo siguiente:

Código Delphi [-]
try
Variable := StrToFloat(Edit1.Text);
except
ShowMessage('No se ha introducido un valor numérico válido');
end;

Entonces el codigo este previamente lo havia puesto en el evento de la tabla: BeforePost, pero al poner un numero(incorrecto) i cambiar de DBEdit me sale que el contenido no es un float. Espero que me puedan indicar donde poner el codigo anterior para una buena validacion y en caso de que haya alguna validacion mejor que me la puedan indicar.

Muchas gracias de nuevo.

PD: Ya he buscado en el foro pero no he encontrado nada.

Tram.
Responder Con Cita
  #2  
Antiguo 02-10-2005
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
dbtext y float

Master:
Te tira el error cuando la cifra es mayor de 999, puede ser que cuando lo pones no te reconoce bien el separador decimal o de miles. Usa en vez de StrToFloa FormatFloat(const Format: string; Value: Extended): string y yo talvez borraria los separadores de miles.
Fijate...

Bye

Luis Roldan
Mar del Plata
Argentina
Responder Con Cita
  #3  
Antiguo 03-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si tu caso es el de separadores de miles y/o decimal, mira este hilo.

La causa, es que dicha validación se hace en el OnExit del DBedit, por tanto, es allí donde tendrías que realizarla.

Si tienes varios DBEdits que funcionan así, puedes poner un ApplicationEvents, y allí (evento OnException) detectar la excepción concreta y mostrar tu mensaje, de esta forma, una sola validación te serviría para todos los dbedits.

Un saludo.
Responder Con Cita
  #4  
Antiguo 03-10-2005
tramjauer tramjauer is offline
Miembro
 
Registrado: ene 2005
Posts: 42
Poder: 0
tramjauer Va por buen camino
Gracias por contestar, pero mi problema no es el de separacion si es por punto o por coma (eso creo yo, ya que si pongo un numero correcto con comas no se queja i graba perfectamente). Mi problema es validar si es un double o no. Ya que si en el DBedit pongo:
Código Delphi [-]
42,2,5
salta un error que es: 42,2,5 is not a valid floating point value for field 'preu'

Entonce como he dixo antes para validarlo iba a utilizar (que no se si esta bien eso, ya que tampoco funciona):
Código Delphi [-]
try
Variable := StrToFloat(DBedt.text);
except
ShowMessage('No se ha introducido un valor numérico válido');
[font=span class='quote''Times New Roman'/span]end;[/font]

Y lo havia puesto en el beforePost, pero al cambiar me salta ese error. Espero que me hayan entendido y que me haya explicado bien.

Gracias de nuevo.

Tram.

Última edición por tramjauer fecha: 03-10-2005 a las 16:04:33.
Responder Con Cita
  #5  
Antiguo 03-10-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Porque no lo implementas en el evento OnChange del field? incluso puedes usar StrToFloatDef..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #6  
Antiguo 03-10-2005
tramjauer tramjauer is offline
Miembro
 
Registrado: ene 2005
Posts: 42
Poder: 0
tramjauer Va por buen camino
Angry

buenas de nuevo, lo he provado en el onExit del componente i en el onChage de del campo de la tabla i quando pongo el numero que anterior mente e puesto, ej: 41,,4 o el numero 41,33,4,

me sigue saliendo el mismo error, ya que se dispara antes el error que el evento.

Gracias!

Última edición por tramjauer fecha: 03-10-2005 a las 17:08:13.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:58:25.


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
Copyright 1996-2007 Club Delphi