Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por gluglu
no tengo manera de borrar la fecha completamente ! Si pongo todo a 0 me dá error diciendo que no es fecha válida. Y caracteres 'espacio' no me deja.

Indicar que tengo puesto una máscara EditMask = '!99/99/0099;1;_'
Me parece que tu problema entonces no es como poner en null el campo en la tabla sino en el dbedit. Quizá podrías usar un truquito de poner una máscara vacía cuando el usuario borre el control. De esta manera, aun cuando el control contenga internamente la fecha por defecto, al usuario le aparece en blanco. Al momento de guardar el registro (en el evento OnBeforePost) te fijas si la máscara está vacía, lo que indicaría que uses el método Clear que te indicaron.

// Saludos
Responder Con Cita
  #2  
Antiguo 29-11-2005
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Gracias Roman,

Tu consejo me encaminó bien, aunque me quedan ciertas dudas.

La solución que le he dado :
Código Delphi [-]
procedure TFrame.DBEdit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  If Key = VK_DELETE then
    If DBEdit1.Text = '  /  /    ' then begin
      IBQuery1DATEFROM.EditMask   := '';
      IBQuery1DATEFROM.OnValidate := nil;
      DBEdit1.Text := '';
      IBQuery1.Edit;
      IBQuery1.Post;
      IBQuery1DATEFROM.EditMask   := '!99/99/9900;1;_';
      IBQuery1DATEFROM.OnValidate := IBQuery1DATEFROMValidate;
      DBEdit1.SetFocus;
    end;
end;
El problema adicional que tenía es que el campo correspondiente tiene un evento OnValidate, y si simplemente ponía el texto del DBEdit en blanco, entonces en el evento OnValidate me volvía a salir el mismo error 'Invalid variant type conversion of Null variant into TDateTime'.

Mi duda sigue siendo por qué no me funciona (al menos en mi Delphi 2005), la función Clear con el campo de fecha, ya que me dá el error que indico arriba.

Y también agradecería si alguien me pudiera aclarar como poder ejecutar correctamente este comando :
Código:
IBQuery1DATEFROM.AsVariant := null;
Un saludo de nuevo a todos !
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 11:41:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi