Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-07-2003
Muten Muten is offline
Miembro
 
Registrado: jul 2003
Posts: 33
Poder: 0
Muten Va por buen camino
Question Controlar insercion de fecha y hora en una tabla paradox

Hola a todos, este es mi primer mensaje en este foro.. así q sed buenos conmigo
Tengo creada una tabla en Paradox con varias columnas, entre ellas una de tipo fecha (Date) y otra de tipo hora (Time), me gustaría saber cuál es la forma más común de controlar la entrada de estos tipos de datos desde un formulario en delphi. Supongo q lo más común es tener dos TDBText con una máscara, una para tipo fecha y la otra para tipo tiempo. Pero la cosa no me va...
Alguna sugerencia??
Responder Con Cita
  #2  
Antiguo 14-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En el Ttable con el que te conectes haces doble clic sobre el campo en cuestión despues de haber añadido todos los campos, y ahí le das el formato, luego lo heredarán todos los DbEdit que tengas e incluso las rejillas.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 14-07-2003
Muten Muten is offline
Miembro
 
Registrado: jul 2003
Posts: 33
Poder: 0
Muten Va por buen camino
Gracias por tu respuesta marcos, mejora lo de la mascara en el tdbText, pero no me soluciona el problema, intentaré ser más claro:
Supongamos q tomamos una de las máscaras para la hora que nos proporciona delphi, esto es: '!90:00;1;_'
En una BD paradox, está permitido meter un 8 únicamente para indicar que son las 08:00:00, si metemos un 8 con esta máscara se produce un error. He mirado muchas formas para cambiar la máscara y q se puedan meter lo distintos formatos q admite la BD (p.ej 8:2 se convierte en 08:02:00), pero no me sale
De todas formas no sé cómo evitar q se muestre esa pantalla tan fea cuando metemos los datos de la hora, p.ej y nos salimos del dbeText ("Invalid input type...."). El evento OnValidate de la TTable se ejecuta cuando se han introducido correctamente los datos, y no veo ningún otro evento interesante por ahí.

Saludos a todo el foro!
Responder Con Cita
  #4  
Antiguo 15-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Prueba con este ejemplo, un poco forzado pero funciona:

Bájate un TApplicationEvents lo tienes en la paleta adicional y para interceptar este error de conversión, que no la lanza el BDE, sino Delphi pones este código, solamente pongo el ejemplo con fechas, pero con tiempos funcionará igual interceptando el mensaje correspondiente.

Código:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
begin
  if (lowercase(copy(E.Message,(Length(E.Message) - 18),19 )))='is not a valid date' then
  Application.MessageBox('La fecha introducida no es correcta','Atención',mb_Ok +
  mb_IconQuestion);
end;
Un Saludo.
Responder Con Cita
  #5  
Antiguo 16-07-2003
Muten Muten is offline
Miembro
 
Registrado: jul 2003
Posts: 33
Poder: 0
Muten Va por buen camino
Lightbulb

Gracias otra vez marcos, basándome en tu idea, me he puesto con la ayuda de delphi y lo he hecho de ésta forma, a ver q te parece:

Código:
 procedure TfrmRegistro.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
begin

        if (E is EDBEditError) then
        begin
          if (dbeFecha.Focused) then
          begin
                MessageDlg('¡Fecha incorrecta! ' +#13+dbeFecha.text +#13 +
                'No tiene formato de fecha.',mtWarning,[mbOK],0);
                  dbeFecha.Text :='';
          end
Un saludo!
Responder Con Cita
  #6  
Antiguo 16-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo veo correcto, lo único es que solamente te sirve para ese control en concreto y con la solución que yo te dí, que habría que mejorar pero no voy bien de tiempo, serviría para cualquier mensaje de error de "fecha incorrecta" 'is not a valid date'

Un Saludo.
Responder Con Cita
  #7  
Antiguo 16-07-2003
Muten Muten is offline
Miembro
 
Registrado: jul 2003
Posts: 33
Poder: 0
Muten Va por buen camino
Thumbs up

Pues tienes razón, de la forma que indicas nos cubrimos las espaldas para cualquier tipo de error relacionado con la fecha.. D todas formas el uso d excepciones no me terminan de convencer a la hora de controlar la fecha y la hora, pero vamos, no pienso seguir comiendome mas el coco con el tema.
Una vez mas, gracias.
Responder Con Cita
  #8  
Antiguo 13-08-2003
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Poder: 0
pgraciap Va por buen camino
Smile

Hola, Muten.

Mira yo no entiendo cual es la finalidad de controlar la insercion de los datos Fecha y Hora, pero hay varias formas de introducir estos datos.

Yo controlo hago que el sistema controle estos datos con lo siguiente:
FrmDatos.Acceso.FieldByName(Fecha).AsDatetime:= Date;
FrmDatos.Acceso.FieldByName(Hora).AsDatetime:= Time;
y asi me evito errores, pero si lo que quieres es introducir estos datos de la forma que el usuario los introduzca creo que primero tendras que ver el formato de la hora y la fecha, es por ello que te marca errores.....

creo que la hora no es: 08:02:50 creo que es: 08:02:00 p.m. o algo asi busca primero como se convierte el dato y veras tu solucion al igual que la fecha........

Espero te sirva de algo......
__________________
Have a nice day :)
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 19:50:11.


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