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 13-04-2005
seken seken is offline
Miembro
 
Registrado: jun 2003
Posts: 83
Poder: 21
seken Va por buen camino
Question Busqueda en un campo fecha

estimados.....
tengo una tabla donde la tengo ordenada por fecha, lo que quiero hacer es que cuando selecciono una fecha en un DateTimePicker me busque esa fecha.
Tengo un buscador que le paso como parametro el date y con:

table.Setkey;
table.Fields[1].asstring:=D; //BUSCO la fecha
table.GotoNearest;


me funciona para cuando busco algun texto. ¿porque con fecha no? pueden decitrme como hacerlo aunque sea de otra forma.
muchas gracias

seken
Responder Con Cita
  #2  
Antiguo 14-04-2005
Avatar de geovany
geovany geovany is offline
Miembro
 
Registrado: sep 2004
Ubicación: El Fuerte Sinaloa
Posts: 165
Poder: 20
geovany Va por buen camino
Campos Date

Los campos date no se pueden utilizar como campos de busqueda debido a que pierden precision al momento de guardarse en la bd principalmente si utilizas BDE yo no pude hacer eso que estas tratando de hacer y lei por ahi que es por que se pierde precision en la fecha

por ejemplo

13:00:00.00000000 <> 13:00:00.0000000001


asi que ay radica la diferencia
__________________
El Fracaso tiene mil explicaciones el Éxito no necsita explicación
Responder Con Cita
  #3  
Antiguo 14-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Código Delphi [-]
table.Fields[1].asDate :=DateOf(datetimepicker1.Date); //BUSCO la fecha

Habrá que ver si la hora tambien está guardada en la base de datos, en este ejemplo no.

La solución alternativa es buscar por rango de fechas, sería mejor usar una consulta en sql, busca por el foro "between" "parametro fecha" etc.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 14-04-2005
seken seken is offline
Miembro
 
Registrado: jun 2003
Posts: 83
Poder: 21
seken Va por buen camino
hay algo que no me reconoce el delphi

estimados....
en la tabla paradox que utilizo tengo declarado el campo como D (Date).

1) si quiero utilizar lo que me explica Lepe:
table.Fields[1].asDate :=DateOf(datetimepicker1.Date);

lo que esta en negrita no me lo toma de da el error "undeclared identifier"
y ademas
2) cuando asign0o en la base de datos la fecha lo hago así:
TableDiasFecha.AsDatetime:=date(); porque con asdate me da el mismo error.

¿que estoy haciendo mal? ¿¿¿¿¿¿¿puedo guardar solo la fecha sin time???????
muchas gracias

seken
Responder Con Cita
  #5  
Antiguo 14-04-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Bueno, yo lo he conseguido de la siguiente manera y me localiza bien el registro.

table.locate(FFecha, ValorFecha, []);

donde
"FFecha" es el nombre del campo Fecha por el que buscas
"VAlorFecha" es valor del objeto DateTimePicker (datetimepicker1.Date)

Esto te localiza el primer registro de la tabla que coincida con el valor que buscas.

Si lo que intentas es seleccionar un grupo de registros con esa fecha lo que tienes que hacer es un SetRange de la tabla:

table.CancelRange;
table.IndexName := nombre del indice por el que ordenas;
table.SetRange([ValorFecha],[ValorFecha]);

Espero que te sirva
Responder Con Cita
  #6  
Antiguo 14-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Lo dije de memoria y me equivoqué

Código Delphi [-]
if   tabla.Locate('fecha', DatetimePicker1.date,[]) then
  ShowMessage('si encontrado')
else
  ShowMessage('no encontrado');
Cita:
Locate uses the fastest possible method to locate matching records. If the search fields in KeyFields are indexed and the index is compatible with the specified search options, Locate uses the index. Otherwise Locate creates a filter for the search.
Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 14-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Se me adelantó hermes_32
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 14-04-2005
seken seken is offline
Miembro
 
Registrado: jun 2003
Posts: 83
Poder: 21
seken Va por buen camino
funcionó OK

muchas gracias, ya resolvi el problema.
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:58.


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