Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Código Delphi [-]
var
Hora1: TTime;
begin
Hora1: Now;
ShortDateFormat := '#yyyy/mm/dd#';
adoquery1.SQL.Text:='SELECT * FROM log WHERE destinatario=' + quotedstr(adoquery2.FieldByName('Usuario').AsString) +
' AND leido = false AND fechaprog <= '+datetostr(date)+
' AND horaprog<= :hora';
adoquery1.Parameters.ParamByName('Hora').Value:= FormatDateTime('hh:mm:ss',Hora1);
End;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #2  
Antiguo 12-07-2010
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 21
ElDioni Va por buen camino
Hola Caral, lo que ocurre es que con la fecha no tengo ningún problema, si quito la parte de "horaprog" la consulta funciona correctamente, ahora, al añadir "horaprog", que es un campo que está guardado en access en formato fecha/hora del tipo de hora larga, si no le pongo las almohadillas no me da ningún error, pero tampoco me devuelve ningún registro y tengo registros que cumplen la condición, y al ponerle las almohadillas me da el error que antes te comentaba, si pongo directamente la consulta, con sus almohadillas correspondientes, en access la consulta funciona correctamente y me saca los registros que tiene que sacar, el valor que le tengo que pasar para hacer la comparación a "HoraProg" tiene que quedar así: #12:10#, por ejemplo.
¿No se si se me explico bien?.
Un saludo.
Responder Con Cita
  #3  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Código Delphi [-]
var
Hora1: TTime;
begin
Hora1: Now;
ShortDateFormat := '#yyyy/mm/dd#';
ShortTimeFormat := '#hh:mm:ss#';
adoquery1.SQL.Text:='SELECT * FROM log WHERE destinatario=' + quotedstr(adoquery2.FieldByName('Usuario').AsString) +
' AND leido = false AND fechaprog <= '+datetostr(date)+
' AND horaprog<= :hora';
adoquery1.Parameters.ParamByName('Hora').Value:= Hora1;
End;
No se, cualquier cosa nos pasas el programa y la bd y lo revisamos a ver cual es el error.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 12-07-2010
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 21
ElDioni Va por buen camino
Os paso el trozo de código de la discordia y la tabla a la que le hago la consulta.

Código Delphi [-]
adoquery4.Close; 
adoquery4.SQL.Text:='SELECT * FROM log WHERE destinatario=' + quotedstr('Dioni') + ' AND leido=false AND (fechaprog <=#' + datetostr(date) + '# AND horaprog<=#' + timetostr(time) + '#)'; 
adoquery4.ExecSQL; 
adoquery4.Open; 
if adoquery4.IsEmpty then   
  begin     
    showmessage('Vacio');   
  end 
else   
  begin     
    showmessage(adoquery4.FieldByName('mensaje').AsString);   
end;

Un saludo

Última edición por ElDioni fecha: 27-12-2010 a las 16:52:46.
Responder Con Cita
  #5  
Antiguo 12-07-2010
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 21
ElDioni Va por buen camino
Señores me tengo que marchar, hasta mañana no me pondré de nuevo con este tema, lo digo por que no podré responderles si escriben alguna solución, no quiero que crean que nos le hago caso. Mañana les contaré si se me ocurrió algo.
Un saludo y gracias.
Responder Con Cita
  #6  
Antiguo 12-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Asi me funciona perfectamente:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShortDateFormat := '#dd/mm/yyyy#';
  ShortTimeFormat := '#hh:mm:ss#';
  adoquery1.Close;
  adoquery1.SQL.Text:='SELECT * FROM log WHERE destinatario =' +Quotedstr('Dioni') +
  ' AND leido = false AND fechaprog <= :dia'+
  ' AND horaprog <= :hora';
  adoquery1.Parameters[0].Value:= Date;
  adoquery1.Parameters[1].Value:= Time;
  adoquery1.Open;
  if adoquery1.IsEmpty then
  begin showmessage('Vacio');
  end
  else begin showmessage(adoquery1.FieldByName('mensaje').AsString); end
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 13-07-2010
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 21
ElDioni Va por buen camino
Como os comentaba ayer he vuelto con el asunto esta mañana, muchas gracias a los dos por vuestro tiempo y vuestras propuestas, al final con la opción de Faust me funciona perfecto, al final se queda así:

Código Delphi [-]
adoquery4.ParamCheck:=false;
adoquery4.Close;
adoquery4.SQL.Text:='SELECT * FROM log WHERE (destinatario=' + 
quotedstr(adoquery2.FieldByName('Usuario').AsString) +
' AND leido=false) AND ((fechaprog<#'+datetostr(date)+'#)OR(fechaprog=#'+
datetostr(date)+'# AND horaprog<=#'+timetostr(time)+'#))';
adoquery4.ExecSQL;
adoquery4.Open;

He tenido que modificar la consulta porque ayer a las 13:00 si me sacaba los mensajes que tenían la fecha de ayer y las 12:00 en la hora, pero hoy a las 8:00 de la mañana, de la forma en que lo tenía puesto, no me sacaba los mensajes, aparte de eso todo genial.
He probado también tu opción Caral y me sigue apareciendo el mensaje de vacío, no se si tendrá que ver con la versión de access que yo tengo que es la 97 , de todas formas gracias de nuevo a los dos.
Un saludo.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta SQL con fecha y hora vpepen SQL 0 10-12-2009 17:11:13
Consulta MySQL con fecha y hora Adrian Murua SQL 10 19-11-2007 05:32:08
Grabar hora en Access silver07 Conexión con bases de datos 7 27-09-2007 03:32:42
Problema con hora en consulta SQL coleleon SQL 5 06-12-2005 23:44:57
Introducir Campo hora en Access lroblesco Conexión con bases de datos 2 07-02-2005 23:18:22


La franja horaria es GMT +2. Ahora son las 05:24:27.


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