Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2006
JULIOCTORRESG JULIOCTORRESG is offline
Miembro
 
Registrado: sep 2006
Posts: 58
Poder: 18
JULIOCTORRESG Va por buen camino
como valido fechas

tengo un control DBtext enlazado a un campo fecha de una tabla ....no quiero usar el componente maskedit pero quiero validar que la entrada de datos en el componente dbtext sea correcta chequeando los separadores al menos eso que es lo mas comun olvidar .....xx/xx/xx tengo una funcion que cuenta la barras (/) y si son dos devuelve el resultado positivo ....en caso contrario manda mensaje de alerta no vuelve al dbtext para su reedicion ....el problema es

donde llamo la funcion ....lo hice el el evento onexit del contro dbtext pero revienta la aplicacion primero con aquello de formato de fecha invalido ...por otro lado imagino que existe una funcion que verifica el valor a ver si es valido algo asi como ISDATE en delphi y como se llama esta funcion ....
Responder Con Cita
  #2  
Antiguo 23-11-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Prueba con la función "TryStrToDate" o "TryStrToDateTime" de la unidad "SysUtils".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 23-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, tienes la función StrToDate, el campo DBText contiene un string, y quieres saber si es una fecha válida. Mételo en un Try..except y si entra en el except es que no es una fecha válida.

Pruébalo a ver que tal.

Saludos
Responder Con Cita
  #4  
Antiguo 23-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Dec se me ha adelantado y además te ahora el Try, ya que la función existe como tal.
Así pues yo me quedo con la da Dec, y tú?

Saludos
Responder Con Cita
  #5  
Antiguo 23-11-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
porque no buscas un componente de dbDateTimePicker, los jedi traen uno ademas de que existen otros free por ahi, asi queda el programa con mas vista y no te molestas en validar
Responder Con Cita
  #6  
Antiguo 23-11-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
También existe la función IsValidDate que puede ir bien en este caso.
DateUtils.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 23-11-2006
JULIOCTORRESG JULIOCTORRESG is offline
Miembro
 
Registrado: sep 2006
Posts: 58
Poder: 18
JULIOCTORRESG Va por buen camino
Eso esta bien ....sin embargo

Ok ya tengo las funciones (agradecido estoy) pero lo malo es que El componente es un Dbedit el problema es donde pongo el codigo para validar .... tengo la propiedad autoedit del datasourse en false de modo que para modificar debo llamar al edit del dataset, ahora bien escribo la fecha y si es invalida al salir del componente a otro revienta la aplicacion ... la idea es interceptar este reviente antes de que ocurra ....donde lo intercepto....
Responder Con Cita
  #8  
Antiguo 24-11-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues si el "reviente" de la aplicación ocurre al salir del "DBEdit"... tal vez puedas usar su evento "OnExit" para validar la fecha... pero, se me hace raro... ¿no estamos hablando de un componente que guarda texto? Si es así (que no lo sé) ¿cómo es que "revienta" nada si se sale del mismo al escribir una fecha no válida? ¿Quién es el que "revienta"? ¿Quién está al tanto de la fecha que se escribe en el "DBEdit" y si no es válida "revienta"? No lo entiendo muy bien...

Por otro lado, si usas un "botón" para actualizar los cambios "editados"... ¿no podrías ahí mismo validar la fecha? Más aún, ¿no existe un evento "BeforeInsert" o similar que pudieras utilizar? Todo son dudas... ya ves que no te aporto mucho, pero, en fin, a ver si damos con la tecla entre todos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 24-11-2006
JULIOCTORRESG JULIOCTORRESG is offline
Miembro
 
Registrado: sep 2006
Posts: 58
Poder: 18
JULIOCTORRESG Va por buen camino
La verdad yo tampoco lo entiendo....

es la triste realidad ....voy a ampliar mi explicacion....

el componente es un dbedit enlazado con un campo de una tabla de tipo datetime por medio del datasourse si... esta claro que la aplicacion lanza una excepcion(para no serguir usando el termino "revienta") ya que el componente tedit espera un valor de tipo fecha valido ....eso lo entiendo sin embargo no olvidemos que coloque el valor autoedit del datasourse en false de modo que no puedo editar los valores sin llamar expresamente el metodo edit ...y para guardarlo necesito llamar al metodo post si .... claro esta, basandome en esto y asumiendo que los valores no son enviados a la bd antes del post pues yo puedo validar en el exit del componente o en el beforepost como valido pues si da falso interrumpo cancelo aviso devuelvo un valor predeterminado de fecha por ejemplo 01/01/80 por decir algo ....pero no puedo porque da la exepcion es como si despues de editar el campo en particular se lanzara automaticamente el metodo post y claro la aplicacioon se detiene ante el error ....
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
el objeto 'sysmergearticles' no es válido.... Cabanyaler MS SQL Server 1 03-08-2006 09:52:47
rango valido FGarcia Varios 2 28-04-2006 01:51:01
basededatos.fdb no es un archivo valido RONPABLO Firebird e Interbase 4 23-08-2005 19:37:13
Conexion ADO , argumento no valido VRO Conexión con bases de datos 2 09-06-2005 12:06:53
Como valido un null?? jbetancurt Firebird e Interbase 2 11-11-2004 16:19:39


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


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