Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con consulta de una BD de access y Ado (https://www.clubdelphi.com/foros/showthread.php?t=38594)

carlos gonzalez 20-12-2006 02:26:34

Problema con consulta de una BD de access y Ado
 
Hola amigos tengo una duda, ojala puedan ayudarme, ya le busque por cielo, mar y tierra y no le encuentro, dejen le explico mi problema.

Necesito hacer una consulta por medio de ADo a una base de datos de access, pero la tabla tiene un campo de fecha/hora cuando mando la consulta filtrando la fecha solo por la fecha sin hora si funciona ejem..

DATAM.ADOQaareprec.Active:=FALSE;
DATAM.ADOQaareprec.SQL.CommaText:='SELECT * FROM AAREPREC WHERE RRFECHA > #05/31/2006# AND RRFECHA < #07/01/2006# ORDER BY RRFECHA';
DATAM.ADOQaareprec.Active:=TRUE;

pero como necesito tambien mandar la hora, cuando mando la fecha y hora tal y como se manda en access no me funciona me manda un error

que seria asi

DATAM.ADOQaareprec.Active:=FALSE;
DATAM.ADOQaareprec.SQL.CommaText:='SELECT * FROM AAREPREC WHERE RRFECHA > #05/31/2006 00:00:01# AND RRFECHA < #07/01/2006 23:59:59# ORDER BY RRFECHA';
DATAM.ADOQaareprec.Active:=TRUE;

alguien sabe como puedo solucionar este problema o sabe donde esta mi error.

se los voy agradecer infinitamente.

Su amigo charless.

epuigdef 20-12-2006 08:49:03

Buenas!

Yo normalmente cambio el formato de fecha a yyyyMMdd (en texto) y así lo comparo más facilmente:

Código SQL [-]
SELECT * FROM AAREPREC 
WHERE format(RRFECHA, 'yyyyMMdd') > '20060531'
AND format(RRFECHA, 'yyyyMMdd') < '20060701'
ORDER BY RRFECHA';


Espero que te sirva

Un saludo

Edu

Neftali [Germán.Estévez] 20-12-2006 11:08:27

Cita:

Empezado por carlos gonzalez
...cuando mando la fecha y hora tal y como se manda en access no me funciona me manda un error

Estaría bien, para poder ayudarte, que nos enviaras el error que te da.
Otra cosa, utiliza TAG's cuando añadas código delphi.

Chogo 20-12-2006 17:27:09

Tambien te sugiero que revises el formato del campo o la columna en la tabla de access. aveces se nos pasan esas cosas.
Tal vez puede ser que tengas un formato corto(short Date) especificado la columna de fecha en la tabla de access.

El formato correcto seria "General Date".

carlos gonzalez 20-12-2006 19:44:40

Problema con consulta de delphi y acces
 
Antes que nada mil gracias por responder a mi mensaje.

como me pidieron que les mandara el mensaje de error, se los anexo. quise utilizar el format pero no funciona no reconoce esa funcion.

esta es mi consulta

Código Delphi [-]
 
  DATAM.ADOQaareprec.Active:=FALSE;
  DATAM.ADOQaareprec.SQL.CommaText:='SELECT * FROM AAREPREC    WHERE   RRFECHA  >  #05/31/2006 00:00:01# AND RRFECHA < #07/01/2006   23:59:59# ORDER BY RRFECHA';
   DATAM.ADOQaareprec.Active:=TRUE;

este es el mensaje de error

Project respswar.exe raised exception class EOlexception with message
'Objeto Parameter mal definido.Se proporciono información incompleta o
incoherente, Process Stopped. Use step or run to continue

El campo en la tabla de access es de fecha/hora y no lo puedo modificar o no lo debe modificar, es por eseo que necesito manadar en la consulta como parametro la fecha junto con la hora.

saludos... estare en espera de sus valiosos comentarios.

Caral 20-12-2006 20:26:03

Hola
Vamos por partes.
La base de datos tiene el formato Fecha/Hora, pero no necesariamente tiene que incluirse la hora en la tabla en si.
Si tienes incluida la hora, el formato para la insersion no es el correcto.
Para evitar errores como este, si quiero obtener la hora la archivo en orto campo independiente de la fecha.
Sujiero que cambies el formato con el cual grabas la informacion en la tabla, grabando solo la fecha y la hora grabarla en otro campo aparte, te quitara muchos dolores de cabeza, ya que llamar a una consulta con los dos parametros sule dar ese error en access.
Saludos

carlos gonzalez 20-12-2006 20:51:54

Problema con consulta de delphi y acces
 
Hola caral antes que nada te agradesco tu comentario, pero el problema que tengo es que no puedo modificar la tabla, es una base de datos de un sistema comprado por la empresa, lo que yo estoy haciento es accesar a la información por medio de una conexion ODBc de acces desde delphi, y cuando trato de filtrar la información por fechas es cuando me da el problema.

Caral 20-12-2006 21:06:23

Hola carlos gonzalez
A grandes males, soluciones tontas.
Una:
Pon dos DateTime picker en el form, esto ven tanto fechas como horas y haz la consulta por medio de estos y no por codigo sql.
Otra:
Pon dos Edit en el form, haces una consulta, que los datos se introduzcan en los edity luegos los comparas.
Bueno no se si ya estoy divagando, esto de las vacaciones.
Saludos


La franja horaria es GMT +2. Ahora son las 09:14:37.

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