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 08-09-2005
magm2000 magm2000 is offline
Miembro
 
Registrado: ago 2003
Posts: 32
Poder: 0
magm2000 Va por buen camino
Locate y access

Hola:
Quiero hacer una busqueda sobre una tabla de access donde tengo un campo denominado 'fecha' que contiene la fecha y la hora.
Utilizo la siguiente sentencia:
qlst.Locate('fecha', mifechaabuscar.datetime, [loPartialKey]);

sin embargo no me encuentra nada, supongo que será un error de mi sentencia, como puedo hacer que me funcione.
Gracias y un saludo.
Responder Con Cita
  #2  
Antiguo 08-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
En vez de pasar la fecha en sí, conviértela a una cadena:

Código Delphi [-]
  qlst.Locate('fecha', DateToStr(mifechaabuscar.datetime), [loPartialKey]);

Saludos!
Responder Con Cita
  #3  
Antiguo 08-09-2005
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.275
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
Una pregunta:
¿Qué sentido tiene hacer una busqueda por Fecha/DateTime con [loPartialKey]?
__________________
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
  #4  
Antiguo 08-09-2005
magm2000 magm2000 is offline
Miembro
 
Registrado: ago 2003
Posts: 32
Poder: 0
magm2000 Va por buen camino
No me funciona tu solución

Gracias por responder tan pronto pero no me funciona:

Código Delphi [-]
 // Leo la fecha de la tabla y la convierto a string
 busca := fcaja.qlst.fieldbyname('fecha').asstring;
 qlst.Locate('fecha', busca, [loPartialKey]);
 // sin embargo este locate sobre la misma tabla si me funciona
 qlst.Locate('numticket', 4, [loPartialKey]);
También he probado tu solución y nada:

Código Delphi [-]
 mifechaabuscar: TDateTimePicker;
 mifechaabuscar := fcaja.qlst.fieldbyname('fecha').asdatetime;
 qlst.Locate('fecha', DateToStr(mifechaabuscar.datetime), [loPartialKey]);
Un saludo.

Última edición por dec fecha: 08-09-2005 a las 19:38:14. Razón: (Encerrar el código fuente en la etiqueta DELPHI)
Responder Con Cita
  #5  
Antiguo 08-09-2005
magm2000 magm2000 is offline
Miembro
 
Registrado: ago 2003
Posts: 32
Poder: 0
magm2000 Va por buen camino
Para Neftali

La busqueda es parcial porque aunque guardo la fecha y la hora en access una de las busquedas que realizo consiste en buscar todos los registros que hay de una fecha (sin importar la hora) determinada.
Un saludo.
Responder Con Cita
  #6  
Antiguo 08-09-2005
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.275
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
Creo que el loPartialKey no va a funcionar con DateTime de forma que si coincide la fecha y no la hora te lo vaya a encontrar. Creo que si desear buscar por una fecha, ignorando la hora deberás utilizar un Beetwen o >= que hora 0:00:00 y <= que 23:59:59
__________________
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 09-09-2005
Neomanar Neomanar is offline
Miembro
 
Registrado: ago 2005
Posts: 18
Poder: 0
Neomanar Va por buen camino
Lightbulb

Creo que en lugar de usar DateToStr deberías formatear la fecha con FormatDateTime, dado que te permite especificar el orden de día, mes y año, como sigue: FormatDateTime('MM/DD/YYYY',mifechaabuscar.datetime)
Es curioso, pero he visto que para filtrar una tabla es posible hacerlo con DateToStr y Delphi formatea la fecha de acuerdo al formato de la tabla. Sin embargo, no sucede lo mismo con el Locate.
Con respecto al [loPartialKey], la ayuda dice que sólo es aplicable a campos de tipo string. "If Options contains the loPartialKey setting, then Locate allows partial-string matching on strings in KeyValues. If Options is an empty set, or if KeyFields does not include any string fields, Options is ignored.
Espero te sirva. Saludos!
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 11:24: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